"use strict";


// 保存原始的 XMLHttpRequest
const OriginalXHR = window.XMLHttpRequest;


function getRandomIntInRange(min=10, max=20) {
  if (min > max) {
      throw new Error('min should be less than or equal to max');
  }
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

// 重写 XMLHttpRequest
window.XMLHttpRequest = function () {
  const xhr = new OriginalXHR();

  // 保存原始的 send 方法
  const originalSend = xhr.send;

  // 重写 send 方法
  xhr.send = function (body) {
    // 获取请求的 URL
    const url = xhr._url; // 需要在 open 方法中保存 URL

    // 只针对特定 URL 修改请求体
    if (url && url.includes('/v1/ResearchDefenderPredupe')) {
      if (body) {
        try {
          // 解析请求体
          const data = JSON.parse(body);

          // 修改指定字段

          if (data.Respondent && data.Respondent.threat_potential) {
            data.Respondent.respondent_risk = 0;
            data.Respondent.threat_potential = 'low';
            data.Respondent.threat_potential_score = getRandomIntInRange(10, 20);
          }
          if (data.Surveys && data.Surveys.duplicate_potential) {
            data.Respondent.respondent_risk = 0;
            data.Respondent.duplicate_potential = 'low';
            data.Respondent.duplicate_score = 0;
            data.Respondent.flag = 0;
            data.Respondent.failure_reason = '';
          }

          // 重新序列化为字符串
          body = JSON.stringify(data);
          console.log('Modified Request Body:', body);
        } catch (error) {
          console.error('Failed to parse request body:', error);
        }
      }
    }

    // 调用原始的 send 方法
    originalSend.call(xhr, body);
  };

  // 保存原始的 open 方法
  const originalOpen = xhr.open;

  // 重写 open 方法，保存 URL
  xhr.open = function (method, url) {
    xhr._url = url; // 保存 URL 供 send 方法使用
    originalOpen.apply(xhr, arguments); // 调用原始的 open 方法
  };

  return xhr;
};
console.log("XHR unimrktresponse interceptor installed");




(self.webpackChunkUniFlow_App = self.webpackChunkUniFlow_App || []).push([[179], {
    495: () => {
        function ce(e) {
            return "function" == typeof e
        }
        function ki(e) {
            const n = e(r => {
                Error.call(r),
                r.stack = (new Error).stack
            }
            );
            return n.prototype = Object.create(Error.prototype),
            n.prototype.constructor = n,
            n
        }
        const is = ki(e => function(n) {
            e(this),
            this.message = n ? `${n.length} errors occurred during unsubscription:\n${n.map( (r, i) => `${i + 1}) ${r.toString()}`).join("\n  ")}` : "",
            this.name = "UnsubscriptionError",
            this.errors = n
        }
        );
        function Li(e, t) {
            if (e) {
                const n = e.indexOf(t);
                0 <= n && e.splice(n, 1)
            }
        }
        class Et {
            constructor(t) {
                this.initialTeardown = t,
                this.closed = !1,
                this._parentage = null,
                this._finalizers = null
            }
            unsubscribe() {
                let t;
                if (!this.closed) {
                    this.closed = !0;
                    const {_parentage: n} = this;
                    if (n)
                        if (this._parentage = null,
                        Array.isArray(n))
                            for (const o of n)
                                o.remove(this);
                        else
                            n.remove(this);
                    const {initialTeardown: r} = this;
                    if (ce(r))
                        try {
                            r()
                        } catch (o) {
                            t = o instanceof is ? o.errors : [o]
                        }
                    const {_finalizers: i} = this;
                    if (i) {
                        this._finalizers = null;
                        for (const o of i)
                            try {
                                sh(o)
                            } catch (s) {
                                t = null != t ? t : [],
                                s instanceof is ? t = [...t, ...s.errors] : t.push(s)
                            }
                    }
                    if (t)
                        throw new is(t)
                }
            }
            add(t) {
                var n;
                if (t && t !== this)
                    if (this.closed)
                        sh(t);
                    else {
                        if (t instanceof Et) {
                            if (t.closed || t._hasParent(this))
                                return;
                            t._addParent(this)
                        }
                        (this._finalizers = null !== (n = this._finalizers) && void 0 !== n ? n : []).push(t)
                    }
            }
            _hasParent(t) {
                const {_parentage: n} = this;
                return n === t || Array.isArray(n) && n.includes(t)
            }
            _addParent(t) {
                const {_parentage: n} = this;
                this._parentage = Array.isArray(n) ? (n.push(t),
                n) : n ? [n, t] : t
            }
            _removeParent(t) {
                const {_parentage: n} = this;
                n === t ? this._parentage = null : Array.isArray(n) && Li(n, t)
            }
            remove(t) {
                const {_finalizers: n} = this;
                n && Li(n, t),
                t instanceof Et && t._removeParent(this)
            }
        }
        Et.EMPTY = ( () => {
            const e = new Et;
            return e.closed = !0,
            e
        }
        )();
        const ih = Et.EMPTY;
        function oh(e) {
            return e instanceof Et || e && "closed"in e && ce(e.remove) && ce(e.add) && ce(e.unsubscribe)
        }
        function sh(e) {
            ce(e) ? e() : e.unsubscribe()
        }
        const cr = {
            onUnhandledError: null,
            onStoppedNotification: null,
            Promise: void 0,
            useDeprecatedSynchronousErrorHandling: !1,
            useDeprecatedNextContext: !1
        }
          , os = {
            setTimeout(e, t, ...n) {
                const {delegate: r} = os;
                return null != r && r.setTimeout ? r.setTimeout(e, t, ...n) : setTimeout(e, t, ...n)
            },
            clearTimeout(e) {
                const {delegate: t} = os;
                return ((null == t ? void 0 : t.clearTimeout) || clearTimeout)(e)
            },
            delegate: void 0
        };
        function ah(e) {
            os.setTimeout( () => {
                const {onUnhandledError: t} = cr;
                if (!t)
                    throw e;
                t(e)
            }
            )
        }
        function uh() {}
        const e0 = fu("C", void 0, void 0);
        function fu(e, t, n) {
            return {
                kind: e,
                value: t,
                error: n
            }
        }
        let dr = null;
        function ss(e) {
            if (cr.useDeprecatedSynchronousErrorHandling) {
                const t = !dr;
                if (t && (dr = {
                    errorThrown: !1,
                    error: null
                }),
                e(),
                t) {
                    const {errorThrown: n, error: r} = dr;
                    if (dr = null,
                    n)
                        throw r
                }
            } else
                e()
        }
        class hu extends Et {
            constructor(t) {
                super(),
                this.isStopped = !1,
                t ? (this.destination = t,
                oh(t) && t.add(this)) : this.destination = u0
            }
            static create(t, n, r) {
                return new as(t,n,r)
            }
            next(t) {
                this.isStopped ? gu(function n0(e) {
                    return fu("N", e, void 0)
                }(t), this) : this._next(t)
            }
            error(t) {
                this.isStopped ? gu(function t0(e) {
                    return fu("E", void 0, e)
                }(t), this) : (this.isStopped = !0,
                this._error(t))
            }
            complete() {
                this.isStopped ? gu(e0, this) : (this.isStopped = !0,
                this._complete())
            }
            unsubscribe() {
                this.closed || (this.isStopped = !0,
                super.unsubscribe(),
                this.destination = null)
            }
            _next(t) {
                this.destination.next(t)
            }
            _error(t) {
                try {
                    this.destination.error(t)
                } finally {
                    this.unsubscribe()
                }
            }
            _complete() {
                try {
                    this.destination.complete()
                } finally {
                    this.unsubscribe()
                }
            }
        }
        const o0 = Function.prototype.bind;
        function pu(e, t) {
            return o0.call(e, t)
        }
        class s0 {
            constructor(t) {
                this.partialObserver = t
            }
            next(t) {
                const {partialObserver: n} = this;
                if (n.next)
                    try {
                        n.next(t)
                    } catch (r) {
                        us(r)
                    }
            }
            error(t) {
                const {partialObserver: n} = this;
                if (n.error)
                    try {
                        n.error(t)
                    } catch (r) {
                        us(r)
                    }
                else
                    us(t)
            }
            complete() {
                const {partialObserver: t} = this;
                if (t.complete)
                    try {
                        t.complete()
                    } catch (n) {
                        us(n)
                    }
            }
        }
        class as extends hu {
            constructor(t, n, r) {
                let i;
                if (super(),
                ce(t) || !t)
                    i = {
                        next: null != t ? t : void 0,
                        error: null != n ? n : void 0,
                        complete: null != r ? r : void 0
                    };
                else {
                    let o;
                    this && cr.useDeprecatedNextContext ? (o = Object.create(t),
                    o.unsubscribe = () => this.unsubscribe(),
                    i = {
                        next: t.next && pu(t.next, o),
                        error: t.error && pu(t.error, o),
                        complete: t.complete && pu(t.complete, o)
                    }) : i = t
                }
                this.destination = new s0(i)
            }
        }
        function us(e) {
            cr.useDeprecatedSynchronousErrorHandling ? function r0(e) {
                cr.useDeprecatedSynchronousErrorHandling && dr && (dr.errorThrown = !0,
                dr.error = e)
            }(e) : ah(e)
        }
        function gu(e, t) {
            const {onStoppedNotification: n} = cr;
            n && os.setTimeout( () => n(e, t))
        }
        const u0 = {
            closed: !0,
            next: uh,
            error: function a0(e) {
                throw e
            },
            complete: uh
        }
          , mu = "function" == typeof Symbol && Symbol.observable || "@@observable";
        function fr(e) {
            return e
        }
        let Me = ( () => {
            class e {
                constructor(n) {
                    n && (this._subscribe = n)
                }
                lift(n) {
                    const r = new e;
                    return r.source = this,
                    r.operator = n,
                    r
                }
                subscribe(n, r, i) {
                    const o = function c0(e) {
                        return e && e instanceof hu || function l0(e) {
                            return e && ce(e.next) && ce(e.error) && ce(e.complete)
                        }(e) && oh(e)
                    }(n) ? n : new as(n,r,i);
                    return ss( () => {
                        const {operator: s, source: a} = this;
                        o.add(s ? s.call(o, a) : a ? this._subscribe(o) : this._trySubscribe(o))
                    }
                    ),
                    o
                }
                _trySubscribe(n) {
                    try {
                        return this._subscribe(n)
                    } catch (r) {
                        n.error(r)
                    }
                }
                forEach(n, r) {
                    return new (r = ch(r))( (i, o) => {
                        const s = new as({
                            next: a => {
                                try {
                                    n(a)
                                } catch (u) {
                                    o(u),
                                    s.unsubscribe()
                                }
                            }
                            ,
                            error: o,
                            complete: i
                        });
                        this.subscribe(s)
                    }
                    )
                }
                _subscribe(n) {
                    var r;
                    return null === (r = this.source) || void 0 === r ? void 0 : r.subscribe(n)
                }
                [mu]() {
                    return this
                }
                pipe(...n) {
                    return function lh(e) {
                        return 0 === e.length ? fr : 1 === e.length ? e[0] : function(n) {
                            return e.reduce( (r, i) => i(r), n)
                        }
                    }(n)(this)
                }
                toPromise(n) {
                    return new (n = ch(n))( (r, i) => {
                        let o;
                        this.subscribe(s => o = s, s => i(s), () => r(o))
                    }
                    )
                }
            }
            return e.create = t => new e(t),
            e
        }
        )();
        function ch(e) {
            var t;
            return null !== (t = null != e ? e : cr.Promise) && void 0 !== t ? t : Promise
        }
        const d0 = ki(e => function() {
            e(this),
            this.name = "ObjectUnsubscribedError",
            this.message = "object unsubscribed"
        }
        );
        let en = ( () => {
            class e extends Me {
                constructor() {
                    super(),
                    this.closed = !1,
                    this.currentObservers = null,
                    this.observers = [],
                    this.isStopped = !1,
                    this.hasError = !1,
                    this.thrownError = null
                }
                lift(n) {
                    const r = new dh(this,this);
                    return r.operator = n,
                    r
                }
                _throwIfClosed() {
                    if (this.closed)
                        throw new d0
                }
                next(n) {
                    ss( () => {
                        if (this._throwIfClosed(),
                        !this.isStopped) {
                            this.currentObservers || (this.currentObservers = Array.from(this.observers));
                            for (const r of this.currentObservers)
                                r.next(n)
                        }
                    }
                    )
                }
                error(n) {
                    ss( () => {
                        if (this._throwIfClosed(),
                        !this.isStopped) {
                            this.hasError = this.isStopped = !0,
                            this.thrownError = n;
                            const {observers: r} = this;
                            for (; r.length; )
                                r.shift().error(n)
                        }
                    }
                    )
                }
                complete() {
                    ss( () => {
                        if (this._throwIfClosed(),
                        !this.isStopped) {
                            this.isStopped = !0;
                            const {observers: n} = this;
                            for (; n.length; )
                                n.shift().complete()
                        }
                    }
                    )
                }
                unsubscribe() {
                    this.isStopped = this.closed = !0,
                    this.observers = this.currentObservers = null
                }
                get observed() {
                    var n;
                    return (null === (n = this.observers) || void 0 === n ? void 0 : n.length) > 0
                }
                _trySubscribe(n) {
                    return this._throwIfClosed(),
                    super._trySubscribe(n)
                }
                _subscribe(n) {
                    return this._throwIfClosed(),
                    this._checkFinalizedStatuses(n),
                    this._innerSubscribe(n)
                }
                _innerSubscribe(n) {
                    const {hasError: r, isStopped: i, observers: o} = this;
                    return r || i ? ih : (this.currentObservers = null,
                    o.push(n),
                    new Et( () => {
                        this.currentObservers = null,
                        Li(o, n)
                    }
                    ))
                }
                _checkFinalizedStatuses(n) {
                    const {hasError: r, thrownError: i, isStopped: o} = this;
                    r ? n.error(i) : o && n.complete()
                }
                asObservable() {
                    const n = new Me;
                    return n.source = this,
                    n
                }
            }
            return e.create = (t, n) => new dh(t,n),
            e
        }
        )();
        class dh extends en {
            constructor(t, n) {
                super(),
                this.destination = t,
                this.source = n
            }
            next(t) {
                var n, r;
                null === (r = null === (n = this.destination) || void 0 === n ? void 0 : n.next) || void 0 === r || r.call(n, t)
            }
            error(t) {
                var n, r;
                null === (r = null === (n = this.destination) || void 0 === n ? void 0 : n.error) || void 0 === r || r.call(n, t)
            }
            complete() {
                var t, n;
                null === (n = null === (t = this.destination) || void 0 === t ? void 0 : t.complete) || void 0 === n || n.call(t)
            }
            _subscribe(t) {
                var n, r;
                return null !== (r = null === (n = this.source) || void 0 === n ? void 0 : n.subscribe(t)) && void 0 !== r ? r : ih
            }
        }
        function fh(e) {
            return ce(null == e ? void 0 : e.lift)
        }
        function He(e) {
            return t => {
                if (fh(t))
                    return t.lift(function(n) {
                        try {
                            return e(n, this)
                        } catch (r) {
                            this.error(r)
                        }
                    });
                throw new TypeError("Unable to lift unknown Observable type")
            }
        }
        function je(e, t, n, r, i) {
            return new f0(e,t,n,r,i)
        }
        class f0 extends hu {
            constructor(t, n, r, i, o, s) {
                super(t),
                this.onFinalize = o,
                this.shouldUnsubscribe = s,
                this._next = n ? function(a) {
                    try {
                        n(a)
                    } catch (u) {
                        t.error(u)
                    }
                }
                : super._next,
                this._error = i ? function(a) {
                    try {
                        i(a)
                    } catch (u) {
                        t.error(u)
                    } finally {
                        this.unsubscribe()
                    }
                }
                : super._error,
                this._complete = r ? function() {
                    try {
                        r()
                    } catch (a) {
                        t.error(a)
                    } finally {
                        this.unsubscribe()
                    }
                }
                : super._complete
            }
            unsubscribe() {
                var t;
                if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
                    const {closed: n} = this;
                    super.unsubscribe(),
                    !n && (null === (t = this.onFinalize) || void 0 === t || t.call(this))
                }
            }
        }
        function X(e, t) {
            return He( (n, r) => {
                let i = 0;
                n.subscribe(je(r, o => {
                    r.next(e.call(t, o, i++))
                }
                ))
            }
            )
        }
        var yu = function() {
            return yu = Object.assign || function(t) {
                for (var n, r = 1, i = arguments.length; r < i; r++)
                    for (var o in n = arguments[r])
                        Object.prototype.hasOwnProperty.call(n, o) && (t[o] = n[o]);
                return t
            }
            ,
            yu.apply(this, arguments)
        };
        function tn(e, t, n, r) {
            return new (n || (n = Promise))(function(o, s) {
                function a(c) {
                    try {
                        l(r.next(c))
                    } catch (d) {
                        s(d)
                    }
                }
                function u(c) {
                    try {
                        l(r.throw(c))
                    } catch (d) {
                        s(d)
                    }
                }
                function l(c) {
                    c.done ? o(c.value) : function i(o) {
                        return o instanceof n ? o : new n(function(s) {
                            s(o)
                        }
                        )
                    }(c.value).then(a, u)
                }
                l((r = r.apply(e, t || [])).next())
            }
            )
        }
        function nn(e, t) {
            var r, i, o, s, n = {
                label: 0,
                sent: function() {
                    if (1 & o[0])
                        throw o[1];
                    return o[1]
                },
                trys: [],
                ops: []
            };
            return s = {
                next: a(0),
                throw: a(1),
                return: a(2)
            },
            "function" == typeof Symbol && (s[Symbol.iterator] = function() {
                return this
            }
            ),
            s;
            function a(l) {
                return function(c) {
                    return function u(l) {
                        if (r)
                            throw new TypeError("Generator is already executing.");
                        for (; n; )
                            try {
                                if (r = 1,
                                i && (o = 2 & l[0] ? i.return : l[0] ? i.throw || ((o = i.return) && o.call(i),
                                0) : i.next) && !(o = o.call(i, l[1])).done)
                                    return o;
                                switch (i = 0,
                                o && (l = [2 & l[0], o.value]),
                                l[0]) {
                                case 0:
                                case 1:
                                    o = l;
                                    break;
                                case 4:
                                    return n.label++,
                                    {
                                        value: l[1],
                                        done: !1
                                    };
                                case 5:
                                    n.label++,
                                    i = l[1],
                                    l = [0];
                                    continue;
                                case 7:
                                    l = n.ops.pop(),
                                    n.trys.pop();
                                    continue;
                                default:
                                    if (!(o = (o = n.trys).length > 0 && o[o.length - 1]) && (6 === l[0] || 2 === l[0])) {
                                        n = 0;
                                        continue
                                    }
                                    if (3 === l[0] && (!o || l[1] > o[0] && l[1] < o[3])) {
                                        n.label = l[1];
                                        break
                                    }
                                    if (6 === l[0] && n.label < o[1]) {
                                        n.label = o[1],
                                        o = l;
                                        break
                                    }
                                    if (o && n.label < o[2]) {
                                        n.label = o[2],
                                        n.ops.push(l);
                                        break
                                    }
                                    o[2] && n.ops.pop(),
                                    n.trys.pop();
                                    continue
                                }
                                l = t.call(e, n)
                            } catch (c) {
                                l = [6, c],
                                i = 0
                            } finally {
                                r = o = 0
                            }
                        if (5 & l[0])
                            throw l[1];
                        return {
                            value: l[0] ? l[1] : void 0,
                            done: !0
                        }
                    }([l, c])
                }
            }
        }
        function gh() {
            for (var e = 0, t = 0, n = arguments.length; t < n; t++)
                e += arguments[t].length;
            var r = Array(e)
              , i = 0;
            for (t = 0; t < n; t++)
                for (var o = arguments[t], s = 0, a = o.length; s < a; s++,
                i++)
                    r[i] = o[s];
            return r
        }
        function hr(e) {
            return this instanceof hr ? (this.v = e,
            this) : new hr(e)
        }
        function p0(e, t, n) {
            if (!Symbol.asyncIterator)
                throw new TypeError("Symbol.asyncIterator is not defined.");
            var i, r = n.apply(e, t || []), o = [];
            return i = {},
            s("next"),
            s("throw"),
            s("return"),
            i[Symbol.asyncIterator] = function() {
                return this
            }
            ,
            i;
            function s(f) {
                r[f] && (i[f] = function(h) {
                    return new Promise(function(p, g) {
                        o.push([f, h, p, g]) > 1 || a(f, h)
                    }
                    )
                }
                )
            }
            function a(f, h) {
                try {
                    !function u(f) {
                        f.value instanceof hr ? Promise.resolve(f.value.v).then(l, c) : d(o[0][2], f)
                    }(r[f](h))
                } catch (p) {
                    d(o[0][3], p)
                }
            }
            function l(f) {
                a("next", f)
            }
            function c(f) {
                a("throw", f)
            }
            function d(f, h) {
                f(h),
                o.shift(),
                o.length && a(o[0][0], o[0][1])
            }
        }
        function g0(e) {
            if (!Symbol.asyncIterator)
                throw new TypeError("Symbol.asyncIterator is not defined.");
            var n, t = e[Symbol.asyncIterator];
            return t ? t.call(e) : (e = function ph(e) {
                var t = "function" == typeof Symbol && Symbol.iterator
                  , n = t && e[t]
                  , r = 0;
                if (n)
                    return n.call(e);
                if (e && "number" == typeof e.length)
                    return {
                        next: function() {
                            return e && r >= e.length && (e = void 0),
                            {
                                value: e && e[r++],
                                done: !e
                            }
                        }
                    };
                throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.")
            }(e),
            n = {},
            r("next"),
            r("throw"),
            r("return"),
            n[Symbol.asyncIterator] = function() {
                return this
            }
            ,
            n);
            function r(o) {
                n[o] = e[o] && function(s) {
                    return new Promise(function(a, u) {
                        !function i(o, s, a, u) {
                            Promise.resolve(u).then(function(l) {
                                o({
                                    value: l,
                                    done: a
                                })
                            }, s)
                        }(a, u, (s = e[o](s)).done, s.value)
                    }
                    )
                }
            }
        }
        const mh = e => e && "number" == typeof e.length && "function" != typeof e;
        function vh(e) {
            return ce(null == e ? void 0 : e.then)
        }
        function yh(e) {
            return ce(e[mu])
        }
        function _h(e) {
            return Symbol.asyncIterator && ce(null == e ? void 0 : e[Symbol.asyncIterator])
        }
        function Dh(e) {
            return new TypeError(`You provided ${null !== e && "object" == typeof e ? "an invalid object" : `'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)
        }
        const Ch = function v0() {
            return "function" == typeof Symbol && Symbol.iterator ? Symbol.iterator : "@@iterator"
        }();
        function wh(e) {
            return ce(null == e ? void 0 : e[Ch])
        }
        function bh(e) {
            return p0(this, arguments, function*() {
                const n = e.getReader();
                try {
                    for (; ; ) {
                        const {value: r, done: i} = yield hr(n.read());
                        if (i)
                            return yield hr(void 0);
                        yield yield hr(r)
                    }
                } finally {
                    n.releaseLock()
                }
            })
        }
        function Eh(e) {
            return ce(null == e ? void 0 : e.getReader)
        }
        function rn(e) {
            if (e instanceof Me)
                return e;
            if (null != e) {
                if (yh(e))
                    return function y0(e) {
                        return new Me(t => {
                            const n = e[mu]();
                            if (ce(n.subscribe))
                                return n.subscribe(t);
                            throw new TypeError("Provided object does not correctly implement Symbol.observable")
                        }
                        )
                    }(e);
                if (mh(e))
                    return function _0(e) {
                        return new Me(t => {
                            for (let n = 0; n < e.length && !t.closed; n++)
                                t.next(e[n]);
                            t.complete()
                        }
                        )
                    }(e);
                if (vh(e))
                    return function D0(e) {
                        return new Me(t => {
                            e.then(n => {
                                t.closed || (t.next(n),
                                t.complete())
                            }
                            , n => t.error(n)).then(null, ah)
                        }
                        )
                    }(e);
                if (_h(e))
                    return Sh(e);
                if (wh(e))
                    return function C0(e) {
                        return new Me(t => {
                            for (const n of e)
                                if (t.next(n),
                                t.closed)
                                    return;
                            t.complete()
                        }
                        )
                    }(e);
                if (Eh(e))
                    return function w0(e) {
                        return Sh(bh(e))
                    }(e)
            }
            throw Dh(e)
        }
        function Sh(e) {
            return new Me(t => {
                (function b0(e, t) {
                    var n, r, i, o;
                    return tn(this, void 0, void 0, function*() {
                        try {
                            for (n = g0(e); !(r = yield n.next()).done; )
                                if (t.next(r.value),
                                t.closed)
                                    return
                        } catch (s) {
                            i = {
                                error: s
                            }
                        } finally {
                            try {
                                r && !r.done && (o = n.return) && (yield o.call(n))
                            } finally {
                                if (i)
                                    throw i.error
                            }
                        }
                        t.complete()
                    })
                }
                )(e, t).catch(n => t.error(n))
            }
            )
        }
        function Sn(e, t, n, r=0, i=!1) {
            const o = t.schedule(function() {
                n(),
                i ? e.add(this.schedule(null, r)) : this.unsubscribe()
            }, r);
            if (e.add(o),
            !i)
                return o
        }
        function Ue(e, t, n=1 / 0) {
            return ce(t) ? Ue( (r, i) => X( (o, s) => t(r, o, i, s))(rn(e(r, i))), n) : ("number" == typeof t && (n = t),
            He( (r, i) => function E0(e, t, n, r, i, o, s, a) {
                const u = [];
                let l = 0
                  , c = 0
                  , d = !1;
                const f = () => {
                    d && !u.length && !l && t.complete()
                }
                  , h = g => l < r ? p(g) : u.push(g)
                  , p = g => {
                    o && t.next(g),
                    l++;
                    let v = !1;
                    rn(n(g, c++)).subscribe(je(t, m => {
                        null == i || i(m),
                        o ? h(m) : t.next(m)
                    }
                    , () => {
                        v = !0
                    }
                    , void 0, () => {
                        if (v)
                            try {
                                for (l--; u.length && l < r; ) {
                                    const m = u.shift();
                                    s ? Sn(t, s, () => p(m)) : p(m)
                                }
                                f()
                            } catch (m) {
                                t.error(m)
                            }
                    }
                    ))
                }
                ;
                return e.subscribe(je(t, h, () => {
                    d = !0,
                    f()
                }
                )),
                () => {
                    null == a || a()
                }
            }(r, i, e, n)))
        }
        function kr(e=1 / 0) {
            return Ue(fr, e)
        }
        const Mn = new Me(e => e.complete());
        function _u(e) {
            return e[e.length - 1]
        }
        function Mh(e) {
            return ce(_u(e)) ? e.pop() : void 0
        }
        function Vi(e) {
            return function M0(e) {
                return e && ce(e.schedule)
            }(_u(e)) ? e.pop() : void 0
        }
        function Ih(e, t=0) {
            return He( (n, r) => {
                n.subscribe(je(r, i => Sn(r, e, () => r.next(i), t), () => Sn(r, e, () => r.complete(), t), i => Sn(r, e, () => r.error(i), t)))
            }
            )
        }
        function Ah(e, t=0) {
            return He( (n, r) => {
                r.add(e.schedule( () => n.subscribe(r), t))
            }
            )
        }
        function Th(e, t) {
            if (!e)
                throw new Error("Iterable cannot be null");
            return new Me(n => {
                Sn(n, t, () => {
                    const r = e[Symbol.asyncIterator]();
                    Sn(n, t, () => {
                        r.next().then(i => {
                            i.done ? n.complete() : n.next(i.value)
                        }
                        )
                    }
                    , 0, !0)
                }
                )
            }
            )
        }
        function Pe(e, t) {
            return t ? function N0(e, t) {
                if (null != e) {
                    if (yh(e))
                        return function A0(e, t) {
                            return rn(e).pipe(Ah(t), Ih(t))
                        }(e, t);
                    if (mh(e))
                        return function x0(e, t) {
                            return new Me(n => {
                                let r = 0;
                                return t.schedule(function() {
                                    r === e.length ? n.complete() : (n.next(e[r++]),
                                    n.closed || this.schedule())
                                })
                            }
                            )
                        }(e, t);
                    if (vh(e))
                        return function T0(e, t) {
                            return rn(e).pipe(Ah(t), Ih(t))
                        }(e, t);
                    if (_h(e))
                        return Th(e, t);
                    if (wh(e))
                        return function R0(e, t) {
                            return new Me(n => {
                                let r;
                                return Sn(n, t, () => {
                                    r = e[Ch](),
                                    Sn(n, t, () => {
                                        let i, o;
                                        try {
                                            ({value: i, done: o} = r.next())
                                        } catch (s) {
                                            return void n.error(s)
                                        }
                                        o ? n.complete() : n.next(i)
                                    }
                                    , 0, !0)
                                }
                                ),
                                () => ce(null == r ? void 0 : r.return) && r.return()
                            }
                            )
                        }(e, t);
                    if (Eh(e))
                        return function F0(e, t) {
                            return Th(bh(e), t)
                        }(e, t)
                }
                throw Dh(e)
            }(e, t) : rn(e)
        }
        function ji(e) {
            return e <= 0 ? () => Mn : He( (t, n) => {
                let r = 0;
                t.subscribe(je(n, i => {
                    ++r <= e && (n.next(i),
                    e <= r && n.complete())
                }
                ))
            }
            )
        }
        function Du(e, t, ...n) {
            return !0 === t ? (e(),
            null) : !1 === t ? null : t(...n).pipe(ji(1)).subscribe( () => e())
        }
        function oe(e) {
            for (let t in e)
                if (e[t] === oe)
                    return t;
            throw Error("Could not find renamed property on target object.")
        }
        function Cu(e, t) {
            for (const n in t)
                t.hasOwnProperty(n) && !e.hasOwnProperty(n) && (e[n] = t[n])
        }
        function se(e) {
            if ("string" == typeof e)
                return e;
            if (Array.isArray(e))
                return "[" + e.map(se).join(", ") + "]";
            if (null == e)
                return "" + e;
            if (e.overriddenName)
                return `${e.overriddenName}`;
            if (e.name)
                return `${e.name}`;
            const t = e.toString();
            if (null == t)
                return "" + t;
            const n = t.indexOf("\n");
            return -1 === n ? t : t.substring(0, n)
        }
        function wu(e, t) {
            return null == e || "" === e ? null === t ? "" : t : null == t || "" === t ? e : e + " " + t
        }
        const k0 = oe({
            __forward_ref__: oe
        });
        function de(e) {
            return e.__forward_ref__ = de,
            e.toString = function() {
                return se(this())
            }
            ,
            e
        }
        function x(e) {
            return bu(e) ? e() : e
        }
        function bu(e) {
            return "function" == typeof e && e.hasOwnProperty(k0) && e.__forward_ref__ === de
        }
        class U extends Error {
            constructor(t, n) {
                super(function ls(e, t) {
                    return `NG0${Math.abs(e)}${t ? ": " + t.trim() : ""}`
                }(t, n)),
                this.code = t
            }
        }
        function k(e) {
            return "string" == typeof e ? e : null == e ? "" : String(e)
        }
        function cs(e, t) {
            throw new U(-201,!1)
        }
        function ht(e, t) {
            null == e && function K(e, t, n, r) {
                throw new Error(`ASSERTION ERROR: ${e}` + (null == r ? "" : ` [Expected=> ${n} ${r} ${t} <=Actual]`))
            }(t, e, null, "!=")
        }
        function I(e) {
            return {
                token: e.token,
                providedIn: e.providedIn || null,
                factory: e.factory,
                value: void 0
            }
        }
        function pt(e) {
            return {
                providers: e.providers || [],
                imports: e.imports || []
            }
        }
        function Eu(e) {
            return xh(e, ds) || xh(e, Fh)
        }
        function xh(e, t) {
            return e.hasOwnProperty(t) ? e[t] : null
        }
        function Rh(e) {
            return e && (e.hasOwnProperty(Su) || e.hasOwnProperty(G0)) ? e[Su] : null
        }
        const ds = oe({
            \u0275prov: oe
        })
          , Su = oe({
            \u0275inj: oe
        })
          , Fh = oe({
            ngInjectableDef: oe
        })
          , G0 = oe({
            ngInjectorDef: oe
        });
        var A = ( () => ((A = A || {})[A.Default = 0] = "Default",
        A[A.Host = 1] = "Host",
        A[A.Self = 2] = "Self",
        A[A.SkipSelf = 4] = "SkipSelf",
        A[A.Optional = 8] = "Optional",
        A))();
        let Mu;
        function on(e) {
            const t = Mu;
            return Mu = e,
            t
        }
        function Nh(e, t, n) {
            const r = Eu(e);
            return r && "root" == r.providedIn ? void 0 === r.value ? r.value = r.factory() : r.value : n & A.Optional ? null : void 0 !== t ? t : void cs(se(e))
        }
        function zn(e) {
            return {
                toString: e
            }.toString()
        }
        var kt = ( () => ((kt = kt || {})[kt.OnPush = 0] = "OnPush",
        kt[kt.Default = 1] = "Default",
        kt))()
          , sn = ( () => {
            return (e = sn || (sn = {}))[e.Emulated = 0] = "Emulated",
            e[e.None = 2] = "None",
            e[e.ShadowDom = 3] = "ShadowDom",
            sn;
            var e
        }
        )();
        const re = ( () => "undefined" != typeof globalThis && globalThis || "undefined" != typeof global && global || "undefined" != typeof window && window || "undefined" != typeof self && "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope && self)()
          , Lr = {}
          , Q = []
          , fs = oe({
            \u0275cmp: oe
        })
          , Iu = oe({
            \u0275dir: oe
        })
          , Au = oe({
            \u0275pipe: oe
        })
          , Ph = oe({
            \u0275mod: oe
        })
          , An = oe({
            \u0275fac: oe
        })
          , Bi = oe({
            __NG_ELEMENT_ID__: oe
        });
        let W0 = 0;
        function Lt(e) {
            return zn( () => {
                const n = !0 === e.standalone
                  , r = {}
                  , i = {
                    type: e.type,
                    providersResolver: null,
                    decls: e.decls,
                    vars: e.vars,
                    factory: null,
                    template: e.template || null,
                    consts: e.consts || null,
                    ngContentSelectors: e.ngContentSelectors,
                    hostBindings: e.hostBindings || null,
                    hostVars: e.hostVars || 0,
                    hostAttrs: e.hostAttrs || null,
                    contentQueries: e.contentQueries || null,
                    declaredInputs: r,
                    inputs: null,
                    outputs: null,
                    exportAs: e.exportAs || null,
                    onPush: e.changeDetection === kt.OnPush,
                    directiveDefs: null,
                    pipeDefs: null,
                    standalone: n,
                    dependencies: n && e.dependencies || null,
                    getStandaloneInjector: null,
                    selectors: e.selectors || Q,
                    viewQuery: e.viewQuery || null,
                    features: e.features || null,
                    data: e.data || {},
                    encapsulation: e.encapsulation || sn.Emulated,
                    id: "c" + W0++,
                    styles: e.styles || Q,
                    _: null,
                    setInput: null,
                    schemas: e.schemas || null,
                    tView: null
                }
                  , o = e.dependencies
                  , s = e.features;
                return i.inputs = Lh(e.inputs, r),
                i.outputs = Lh(e.outputs),
                s && s.forEach(a => a(i)),
                i.directiveDefs = o ? () => ("function" == typeof o ? o() : o).map(Oh).filter(kh) : null,
                i.pipeDefs = o ? () => ("function" == typeof o ? o() : o).map(et).filter(kh) : null,
                i
            }
            )
        }
        function Oh(e) {
            return ae(e) || Ke(e)
        }
        function kh(e) {
            return null !== e
        }
        const Z0 = {};
        function St(e) {
            return zn( () => {
                const t = {
                    type: e.type,
                    bootstrap: e.bootstrap || Q,
                    declarations: e.declarations || Q,
                    imports: e.imports || Q,
                    exports: e.exports || Q,
                    transitiveCompileScopes: null,
                    schemas: e.schemas || null,
                    id: e.id || null
                };
                return null != e.id && (Z0[e.id] = e.type),
                t
            }
            )
        }
        function Lh(e, t) {
            if (null == e)
                return Lr;
            const n = {};
            for (const r in e)
                if (e.hasOwnProperty(r)) {
                    let i = e[r]
                      , o = i;
                    Array.isArray(i) && (o = i[1],
                    i = i[0]),
                    n[i] = r,
                    t && (t[i] = o)
                }
            return n
        }
        const R = Lt;
        function ae(e) {
            return e[fs] || null
        }
        function Ke(e) {
            return e[Iu] || null
        }
        function et(e) {
            return e[Au] || null
        }
        function gt(e, t) {
            const n = e[Ph] || null;
            if (!n && !0 === t)
                throw new Error(`Type ${se(e)} does not have '\u0275mod' property.`);
            return n
        }
        const $ = 11;
        function ct(e) {
            return Array.isArray(e) && "object" == typeof e[1]
        }
        function jt(e) {
            return Array.isArray(e) && !0 === e[1]
        }
        function Ru(e) {
            return 0 != (8 & e.flags)
        }
        function ms(e) {
            return 2 == (2 & e.flags)
        }
        function vs(e) {
            return 1 == (1 & e.flags)
        }
        function Bt(e) {
            return null !== e.template
        }
        function K0(e) {
            return 0 != (256 & e[2])
        }
        function yr(e, t) {
            return e.hasOwnProperty(An) ? e[An] : null
        }
        class nb {
            constructor(t, n, r) {
                this.previousValue = t,
                this.currentValue = n,
                this.firstChange = r
            }
            isFirstChange() {
                return this.firstChange
            }
        }
        function It() {
            return Bh
        }
        function Bh(e) {
            return e.type.prototype.ngOnChanges && (e.setInput = ib),
            rb
        }
        function rb() {
            const e = Uh(this)
              , t = null == e ? void 0 : e.current;
            if (t) {
                const n = e.previous;
                if (n === Lr)
                    e.previous = t;
                else
                    for (let r in t)
                        n[r] = t[r];
                e.current = null,
                this.ngOnChanges(t)
            }
        }
        function ib(e, t, n, r) {
            const i = Uh(e) || function ob(e, t) {
                return e[Hh] = t
            }(e, {
                previous: Lr,
                current: null
            })
              , o = i.current || (i.current = {})
              , s = i.previous
              , a = this.declaredInputs[n]
              , u = s[a];
            o[a] = new nb(u && u.currentValue,t,s === Lr),
            e[r] = t
        }
        It.ngInherit = !0;
        const Hh = "__ngSimpleChanges__";
        function Uh(e) {
            return e[Hh] || null
        }
        let ku;
        function Ce(e) {
            return !!e.listen
        }
        const $h = {
            createRenderer: (e, t) => function Lu() {
                return void 0 !== ku ? ku : "undefined" != typeof document ? document : void 0
            }()
        };
        function Ae(e) {
            for (; Array.isArray(e); )
                e = e[0];
            return e
        }
        function ys(e, t) {
            return Ae(t[e])
        }
        function Tt(e, t) {
            return Ae(t[e.index])
        }
        function Vu(e, t) {
            return e.data[t]
        }
        function vt(e, t) {
            const n = t[e];
            return ct(n) ? n : n[0]
        }
        function ju(e) {
            return 64 == (64 & e[2])
        }
        function Zn(e, t) {
            return null == t ? null : e[t]
        }
        function qh(e) {
            e[18] = 0
        }
        function Bu(e, t) {
            e[5] += t;
            let n = e
              , r = e[3];
            for (; null !== r && (1 === t && 1 === n[5] || -1 === t && 0 === n[5]); )
                r[5] += t,
                n = r,
                r = r[3]
        }
        const O = {
            lFrame: ep(null),
            bindingsEnabled: !0
        };
        function zh() {
            return O.bindingsEnabled
        }
        function D() {
            return O.lFrame.lView
        }
        function Y() {
            return O.lFrame.tView
        }
        function an(e) {
            return O.lFrame.contextLView = e,
            e[8]
        }
        function un(e) {
            return O.lFrame.contextLView = null,
            e
        }
        function Oe() {
            let e = Zh();
            for (; null !== e && 64 === e.type; )
                e = e.parent;
            return e
        }
        function Zh() {
            return O.lFrame.currentTNode
        }
        function ln(e, t) {
            const n = O.lFrame;
            n.currentTNode = e,
            n.isParent = t
        }
        function Hu() {
            return O.lFrame.isParent
        }
        function $r() {
            return O.lFrame.bindingIndex++
        }
        function xn(e) {
            const t = O.lFrame
              , n = t.bindingIndex;
            return t.bindingIndex = t.bindingIndex + e,
            n
        }
        function wb(e, t) {
            const n = O.lFrame;
            n.bindingIndex = n.bindingRootIndex = e,
            $u(t)
        }
        function $u(e) {
            O.lFrame.currentDirectiveIndex = e
        }
        function qu(e) {
            O.lFrame.currentQueryIndex = e
        }
        function Eb(e) {
            const t = e[1];
            return 2 === t.type ? t.declTNode : 1 === t.type ? e[6] : null
        }
        function Xh(e, t, n) {
            if (n & A.SkipSelf) {
                let i = t
                  , o = e;
                for (; !(i = i.parent,
                null !== i || n & A.Host || (i = Eb(o),
                null === i || (o = o[15],
                10 & i.type))); )
                    ;
                if (null === i)
                    return !1;
                t = i,
                e = o
            }
            const r = O.lFrame = Kh();
            return r.currentTNode = t,
            r.lView = e,
            !0
        }
        function Ds(e) {
            const t = Kh()
              , n = e[1];
            O.lFrame = t,
            t.currentTNode = n.firstChild,
            t.lView = e,
            t.tView = n,
            t.contextLView = e,
            t.bindingIndex = n.bindingStartIndex,
            t.inI18n = !1
        }
        function Kh() {
            const e = O.lFrame
              , t = null === e ? null : e.child;
            return null === t ? ep(e) : t
        }
        function ep(e) {
            const t = {
                currentTNode: null,
                isParent: !0,
                lView: null,
                tView: null,
                selectedIndex: -1,
                contextLView: null,
                elementDepthCount: 0,
                currentNamespace: null,
                currentDirectiveIndex: -1,
                bindingRootIndex: -1,
                bindingIndex: -1,
                currentQueryIndex: 0,
                parent: e,
                child: null,
                inI18n: !1
            };
            return null !== e && (e.child = t),
            t
        }
        function tp() {
            const e = O.lFrame;
            return O.lFrame = e.parent,
            e.currentTNode = null,
            e.lView = null,
            e
        }
        const np = tp;
        function Cs() {
            const e = tp();
            e.isParent = !0,
            e.tView = null,
            e.selectedIndex = -1,
            e.contextLView = null,
            e.elementDepthCount = 0,
            e.currentDirectiveIndex = -1,
            e.currentNamespace = null,
            e.bindingRootIndex = -1,
            e.bindingIndex = -1,
            e.currentQueryIndex = 0
        }
        function nt() {
            return O.lFrame.selectedIndex
        }
        function Yn(e) {
            O.lFrame.selectedIndex = e
        }
        function we() {
            const e = O.lFrame;
            return Vu(e.tView, e.selectedIndex)
        }
        function ws(e, t) {
            for (let n = t.directiveStart, r = t.directiveEnd; n < r; n++) {
                const o = e.data[n].type.prototype
                  , {ngAfterContentInit: s, ngAfterContentChecked: a, ngAfterViewInit: u, ngAfterViewChecked: l, ngOnDestroy: c} = o;
                s && (e.contentHooks || (e.contentHooks = [])).push(-n, s),
                a && ((e.contentHooks || (e.contentHooks = [])).push(n, a),
                (e.contentCheckHooks || (e.contentCheckHooks = [])).push(n, a)),
                u && (e.viewHooks || (e.viewHooks = [])).push(-n, u),
                l && ((e.viewHooks || (e.viewHooks = [])).push(n, l),
                (e.viewCheckHooks || (e.viewCheckHooks = [])).push(n, l)),
                null != c && (e.destroyHooks || (e.destroyHooks = [])).push(n, c)
            }
        }
        function bs(e, t, n) {
            rp(e, t, 3, n)
        }
        function Es(e, t, n, r) {
            (3 & e[2]) === n && rp(e, t, n, r)
        }
        function Wu(e, t) {
            let n = e[2];
            (3 & n) === t && (n &= 2047,
            n += 1,
            e[2] = n)
        }
        function rp(e, t, n, r) {
            const o = null != r ? r : -1
              , s = t.length - 1;
            let a = 0;
            for (let u = void 0 !== r ? 65535 & e[18] : 0; u < s; u++)
                if ("number" == typeof t[u + 1]) {
                    if (a = t[u],
                    null != r && a >= r)
                        break
                } else
                    t[u] < 0 && (e[18] += 65536),
                    (a < o || -1 == o) && (Nb(e, n, t, u),
                    e[18] = (4294901760 & e[18]) + u + 2),
                    u++
        }
        function Nb(e, t, n, r) {
            const i = n[r] < 0
              , o = n[r + 1]
              , a = e[i ? -n[r] : n[r]];
            if (i) {
                if (e[2] >> 11 < e[18] >> 16 && (3 & e[2]) === t) {
                    e[2] += 2048;
                    try {
                        o.call(a)
                    } finally {}
                }
            } else
                try {
                    o.call(a)
                } finally {}
        }
        class qi {
            constructor(t, n, r) {
                this.factory = t,
                this.resolving = !1,
                this.canSeeViewProviders = n,
                this.injectImpl = r
            }
        }
        function Ss(e, t, n) {
            const r = Ce(e);
            let i = 0;
            for (; i < n.length; ) {
                const o = n[i];
                if ("number" == typeof o) {
                    if (0 !== o)
                        break;
                    i++;
                    const s = n[i++]
                      , a = n[i++]
                      , u = n[i++];
                    r ? e.setAttribute(t, a, u, s) : t.setAttributeNS(s, a, u)
                } else {
                    const s = o
                      , a = n[++i];
                    Zu(s) ? r && e.setProperty(t, s, a) : r ? e.setAttribute(t, s, a) : t.setAttribute(s, a),
                    i++
                }
            }
            return i
        }
        function ip(e) {
            return 3 === e || 4 === e || 6 === e
        }
        function Zu(e) {
            return 64 === e.charCodeAt(0)
        }
        function Ms(e, t) {
            if (null !== t && 0 !== t.length)
                if (null === e || 0 === e.length)
                    e = t.slice();
                else {
                    let n = -1;
                    for (let r = 0; r < t.length; r++) {
                        const i = t[r];
                        "number" == typeof i ? n = i : 0 === n || op(e, n, i, null, -1 === n || 2 === n ? t[++r] : null)
                    }
                }
            return e
        }
        function op(e, t, n, r, i) {
            let o = 0
              , s = e.length;
            if (-1 === t)
                s = -1;
            else
                for (; o < e.length; ) {
                    const a = e[o++];
                    if ("number" == typeof a) {
                        if (a === t) {
                            s = -1;
                            break
                        }
                        if (a > t) {
                            s = o - 1;
                            break
                        }
                    }
                }
            for (; o < e.length; ) {
                const a = e[o];
                if ("number" == typeof a)
                    break;
                if (a === n) {
                    if (null === r)
                        return void (null !== i && (e[o + 1] = i));
                    if (r === e[o + 1])
                        return void (e[o + 2] = i)
                }
                o++,
                null !== r && o++,
                null !== i && o++
            }
            -1 !== s && (e.splice(s, 0, t),
            o = s + 1),
            e.splice(o++, 0, n),
            null !== r && e.splice(o++, 0, r),
            null !== i && e.splice(o++, 0, i)
        }
        function sp(e) {
            return -1 !== e
        }
        function Gr(e) {
            return 32767 & e
        }
        function qr(e, t) {
            let n = function Vb(e) {
                return e >> 16
            }(e)
              , r = t;
            for (; n > 0; )
                r = r[15],
                n--;
            return r
        }
        let Yu = !0;
        function Is(e) {
            const t = Yu;
            return Yu = e,
            t
        }
        let jb = 0;
        const cn = {};
        function zi(e, t) {
            const n = Qu(e, t);
            if (-1 !== n)
                return n;
            const r = t[1];
            r.firstCreatePass && (e.injectorIndex = t.length,
            Ju(r.data, e),
            Ju(t, null),
            Ju(r.blueprint, null));
            const i = As(e, t)
              , o = e.injectorIndex;
            if (sp(i)) {
                const s = Gr(i)
                  , a = qr(i, t)
                  , u = a[1].data;
                for (let l = 0; l < 8; l++)
                    t[o + l] = a[s + l] | u[s + l]
            }
            return t[o + 8] = i,
            o
        }
        function Ju(e, t) {
            e.push(0, 0, 0, 0, 0, 0, 0, 0, t)
        }
        function Qu(e, t) {
            return -1 === e.injectorIndex || e.parent && e.parent.injectorIndex === e.injectorIndex || null === t[e.injectorIndex + 8] ? -1 : e.injectorIndex
        }
        function As(e, t) {
            if (e.parent && -1 !== e.parent.injectorIndex)
                return e.parent.injectorIndex;
            let n = 0
              , r = null
              , i = t;
            for (; null !== i; ) {
                if (r = gp(i),
                null === r)
                    return -1;
                if (n++,
                i = i[15],
                -1 !== r.injectorIndex)
                    return r.injectorIndex | n << 16
            }
            return -1
        }
        function Ts(e, t, n) {
            !function Bb(e, t, n) {
                let r;
                "string" == typeof n ? r = n.charCodeAt(0) || 0 : n.hasOwnProperty(Bi) && (r = n[Bi]),
                null == r && (r = n[Bi] = jb++);
                const i = 255 & r;
                t.data[e + (i >> 5)] |= 1 << i
            }(e, t, n)
        }
        function lp(e, t, n) {
            if (n & A.Optional)
                return e;
            cs()
        }
        function cp(e, t, n, r) {
            if (n & A.Optional && void 0 === r && (r = null),
            0 == (n & (A.Self | A.Host))) {
                const i = e[9]
                  , o = on(void 0);
                try {
                    return i ? i.get(t, r, n & A.Optional) : Nh(t, r, n & A.Optional)
                } finally {
                    on(o)
                }
            }
            return lp(r, 0, n)
        }
        function dp(e, t, n, r=A.Default, i) {
            if (null !== e) {
                if (1024 & t[2]) {
                    const s = function qb(e, t, n, r, i) {
                        let o = e
                          , s = t;
                        for (; null !== o && null !== s && 1024 & s[2] && !(256 & s[2]); ) {
                            const a = fp(o, s, n, r | A.Self, cn);
                            if (a !== cn)
                                return a;
                            let u = o.parent;
                            if (!u) {
                                const l = s[21];
                                if (l) {
                                    const c = l.get(n, cn, r);
                                    if (c !== cn)
                                        return c
                                }
                                u = gp(s),
                                s = s[15]
                            }
                            o = u
                        }
                        return i
                    }(e, t, n, r, cn);
                    if (s !== cn)
                        return s
                }
                const o = fp(e, t, n, r, cn);
                if (o !== cn)
                    return o
            }
            return cp(t, n, r, i)
        }
        function fp(e, t, n, r, i) {
            const o = function $b(e) {
                if ("string" == typeof e)
                    return e.charCodeAt(0) || 0;
                const t = e.hasOwnProperty(Bi) ? e[Bi] : void 0;
                return "number" == typeof t ? t >= 0 ? 255 & t : Gb : t
            }(n);
            if ("function" == typeof o) {
                if (!Xh(t, e, r))
                    return r & A.Host ? lp(i, 0, r) : cp(t, n, r, i);
                try {
                    const s = o(r);
                    if (null != s || r & A.Optional)
                        return s;
                    cs()
                } finally {
                    np()
                }
            } else if ("number" == typeof o) {
                let s = null
                  , a = Qu(e, t)
                  , u = -1
                  , l = r & A.Host ? t[16][6] : null;
                for ((-1 === a || r & A.SkipSelf) && (u = -1 === a ? As(e, t) : t[a + 8],
                -1 !== u && pp(r, !1) ? (s = t[1],
                a = Gr(u),
                t = qr(u, t)) : a = -1); -1 !== a; ) {
                    const c = t[1];
                    if (hp(o, a, c.data)) {
                        const d = Ub(a, t, n, s, r, l);
                        if (d !== cn)
                            return d
                    }
                    u = t[a + 8],
                    -1 !== u && pp(r, t[1].data[a + 8] === l) && hp(o, a, t) ? (s = c,
                    a = Gr(u),
                    t = qr(u, t)) : a = -1
                }
            }
            return i
        }
        function Ub(e, t, n, r, i, o) {
            const s = t[1]
              , a = s.data[e + 8]
              , c = function xs(e, t, n, r, i) {
                const o = e.providerIndexes
                  , s = t.data
                  , a = 1048575 & o
                  , u = e.directiveStart
                  , c = o >> 20
                  , f = i ? a + c : e.directiveEnd;
                for (let h = r ? a : a + c; h < f; h++) {
                    const p = s[h];
                    if (h < u && n === p || h >= u && p.type === n)
                        return h
                }
                if (i) {
                    const h = s[u];
                    if (h && Bt(h) && h.type === n)
                        return u
                }
                return null
            }(a, s, n, null == r ? ms(a) && Yu : r != s && 0 != (3 & a.type), i & A.Host && o === a);
            return null !== c ? Zi(t, s, c, a) : cn
        }
        function Zi(e, t, n, r) {
            let i = e[n];
            const o = t.data;
            if (function Pb(e) {
                return e instanceof qi
            }(i)) {
                const s = i;
                s.resolving && function L0(e, t) {
                    const n = t ? `. Dependency path: ${t.join(" > ")} > ${e}` : "";
                    throw new U(-200,`Circular dependency in DI detected for ${e}${n}`)
                }(function J(e) {
                    return "function" == typeof e ? e.name || e.toString() : "object" == typeof e && null != e && "function" == typeof e.type ? e.type.name || e.type.toString() : k(e)
                }(o[n]));
                const a = Is(s.canSeeViewProviders);
                s.resolving = !0;
                const u = s.injectImpl ? on(s.injectImpl) : null;
                Xh(e, r, A.Default);
                try {
                    i = e[n] = s.factory(void 0, o, e, r),
                    t.firstCreatePass && n >= r.directiveStart && function Fb(e, t, n) {
                        const {ngOnChanges: r, ngOnInit: i, ngDoCheck: o} = t.type.prototype;
                        if (r) {
                            const s = Bh(t);
                            (n.preOrderHooks || (n.preOrderHooks = [])).push(e, s),
                            (n.preOrderCheckHooks || (n.preOrderCheckHooks = [])).push(e, s)
                        }
                        i && (n.preOrderHooks || (n.preOrderHooks = [])).push(0 - e, i),
                        o && ((n.preOrderHooks || (n.preOrderHooks = [])).push(e, o),
                        (n.preOrderCheckHooks || (n.preOrderCheckHooks = [])).push(e, o))
                    }(n, o[n], t)
                } finally {
                    null !== u && on(u),
                    Is(a),
                    s.resolving = !1,
                    np()
                }
            }
            return i
        }
        function hp(e, t, n) {
            return !!(n[t + (e >> 5)] & 1 << e)
        }
        function pp(e, t) {
            return !(e & A.Self || e & A.Host && t)
        }
        class Wr {
            constructor(t, n) {
                this._tNode = t,
                this._lView = n
            }
            get(t, n, r) {
                return dp(this._tNode, this._lView, t, r, n)
            }
        }
        function Gb() {
            return new Wr(Oe(),D())
        }
        function $e(e) {
            return zn( () => {
                const t = e.prototype.constructor
                  , n = t[An] || Xu(t)
                  , r = Object.prototype;
                let i = Object.getPrototypeOf(e.prototype).constructor;
                for (; i && i !== r; ) {
                    const o = i[An] || Xu(i);
                    if (o && o !== n)
                        return o;
                    i = Object.getPrototypeOf(i)
                }
                return o => new o
            }
            )
        }
        function Xu(e) {
            return bu(e) ? () => {
                const t = Xu(x(e));
                return t && t()
            }
            : yr(e)
        }
        function gp(e) {
            const t = e[1]
              , n = t.type;
            return 2 === n ? t.declTNode : 1 === n ? e[6] : null
        }
        const Zr = "__parameters__";
        function Jr(e, t, n) {
            return zn( () => {
                const r = function Ku(e) {
                    return function(...n) {
                        if (e) {
                            const r = e(...n);
                            for (const i in r)
                                this[i] = r[i]
                        }
                    }
                }(t);
                function i(...o) {
                    if (this instanceof i)
                        return r.apply(this, o),
                        this;
                    const s = new i(...o);
                    return a.annotation = s,
                    a;
                    function a(u, l, c) {
                        const d = u.hasOwnProperty(Zr) ? u[Zr] : Object.defineProperty(u, Zr, {
                            value: []
                        })[Zr];
                        for (; d.length <= c; )
                            d.push(null);
                        return (d[c] = d[c] || []).push(s),
                        u
                    }
                }
                return n && (i.prototype = Object.create(n.prototype)),
                i.prototype.ngMetadataName = e,
                i.annotationCls = i,
                i
            }
            )
        }
        class N {
            constructor(t, n) {
                this._desc = t,
                this.ngMetadataName = "InjectionToken",
                this.\u0275prov = void 0,
                "number" == typeof n ? this.__NG_ELEMENT_ID__ = n : void 0 !== n && (this.\u0275prov = I({
                    token: this,
                    providedIn: n.providedIn || "root",
                    factory: n.factory
                }))
            }
            get multi() {
                return this
            }
            toString() {
                return `InjectionToken ${this._desc}`
            }
        }
        const zb = new N("AnalyzeForEntryComponents");
        function Rn(e, t) {
            e.forEach(n => Array.isArray(n) ? Rn(n, t) : t(n))
        }
        function vp(e, t, n) {
            t >= e.length ? e.push(n) : e.splice(t, 0, n)
        }
        function Rs(e, t) {
            return t >= e.length - 1 ? e.pop() : e.splice(t, 1)[0]
        }
        function _t(e, t, n) {
            let r = Qr(e, t);
            return r >= 0 ? e[1 | r] = n : (r = ~r,
            function Jb(e, t, n, r) {
                let i = e.length;
                if (i == t)
                    e.push(n, r);
                else if (1 === i)
                    e.push(r, e[0]),
                    e[0] = n;
                else {
                    for (i--,
                    e.push(e[i - 1], e[i]); i > t; )
                        e[i] = e[i - 2],
                        i--;
                    e[t] = n,
                    e[t + 1] = r
                }
            }(e, r, t, n)),
            r
        }
        function tl(e, t) {
            const n = Qr(e, t);
            if (n >= 0)
                return e[1 | n]
        }
        function Qr(e, t) {
            return function Dp(e, t, n) {
                let r = 0
                  , i = e.length >> n;
                for (; i !== r; ) {
                    const o = r + (i - r >> 1)
                      , s = e[o << n];
                    if (t === s)
                        return o << n;
                    s > t ? i = o : r = o + 1
                }
                return ~(i << n)
            }(e, t, 1)
        }
        const Ki = {}
          , rl = "__NG_DI_FLAG__"
          , Ns = "ngTempTokenPath"
          , iE = /\n/gm
          , Cp = "__source";
        let eo;
        function Ps(e) {
            const t = eo;
            return eo = e,
            t
        }
        function sE(e, t=A.Default) {
            if (void 0 === eo)
                throw new U(-203,!1);
            return null === eo ? Nh(e, void 0, t) : eo.get(e, t & A.Optional ? null : void 0, t)
        }
        function S(e, t=A.Default) {
            return (function q0() {
                return Mu
            }() || sE)(x(e), t)
        }
        function il(e) {
            const t = [];
            for (let n = 0; n < e.length; n++) {
                const r = x(e[n]);
                if (Array.isArray(r)) {
                    if (0 === r.length)
                        throw new U(900,!1);
                    let i, o = A.Default;
                    for (let s = 0; s < r.length; s++) {
                        const a = r[s]
                          , u = uE(a);
                        "number" == typeof u ? -1 === u ? i = a.token : o |= u : i = a
                    }
                    t.push(S(i, o))
                } else
                    t.push(S(r))
            }
            return t
        }
        function to(e, t) {
            return e[rl] = t,
            e.prototype[rl] = t,
            e
        }
        function uE(e) {
            return e[rl]
        }
        const Os = to(Jr("Inject", e => ({
            token: e
        })), -1)
          , Fn = to(Jr("Optional"), 8)
          , no = to(Jr("SkipSelf"), 4);
        class Np {
            constructor(t) {
                this.changingThisBreaksApplicationSecurity = t
            }
            toString() {
                return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`
            }
        }
        function Qn(e) {
            return e instanceof Np ? e.changingThisBreaksApplicationSecurity : e
        }
        const RE = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi
          , FE = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;
        var Te = ( () => ((Te = Te || {})[Te.NONE = 0] = "NONE",
        Te[Te.HTML = 1] = "HTML",
        Te[Te.STYLE = 2] = "STYLE",
        Te[Te.SCRIPT = 3] = "SCRIPT",
        Te[Te.URL = 4] = "URL",
        Te[Te.RESOURCE_URL = 5] = "RESOURCE_URL",
        Te))();
        function dl(e) {
            const t = function ao() {
                const e = D();
                return e && e[12]
            }();
            return t ? t.sanitize(Te.URL, e) || "" : function oo(e, t) {
                const n = function IE(e) {
                    return e instanceof Np && e.getTypeName() || null
                }(e);
                if (null != n && n !== t) {
                    if ("ResourceURL" === n && "URL" === t)
                        return !0;
                    throw new Error(`Required a safe ${t}, got a ${n} (see https://g.co/ng/security#xss)`)
                }
                return n === t
            }(e, "URL") ? Qn(e) : function Bs(e) {
                return (e = String(e)).match(RE) || e.match(FE) ? e : "unsafe:" + e
            }(k(e))
        }
        function hl(e) {
            return e.ngOriginalError
        }
        class ei {
            constructor() {
                this._console = console
            }
            handleError(t) {
                const n = this._findOriginalError(t);
                this._console.error("ERROR", t),
                n && this._console.error("ORIGINAL ERROR", n)
            }
            _findOriginalError(t) {
                let n = t && hl(t);
                for (; n && hl(n); )
                    n = hl(n);
                return n || null
            }
        }
        const pl = new Map;
        let eS = 0;
        const ml = "__ngContext__";
        function Ze(e, t) {
            ct(t) ? (e[ml] = t[20],
            function nS(e) {
                pl.set(e[20], e)
            }(t)) : e[ml] = t
        }
        function uo(e) {
            const t = e[ml];
            return "number" == typeof t ? function $p(e) {
                return pl.get(e) || null
            }(t) : t || null
        }
        function vl(e) {
            const t = uo(e);
            return t ? ct(t) ? t : t.lView : null
        }
        const dS = ( () => ("undefined" != typeof requestAnimationFrame && requestAnimationFrame || setTimeout).bind(re))();
        function Nn(e) {
            return e instanceof Function ? e() : e
        }
        var Dt = ( () => ((Dt = Dt || {})[Dt.Important = 1] = "Important",
        Dt[Dt.DashCase = 2] = "DashCase",
        Dt))();
        function _l(e, t) {
            return undefined(e, t)
        }
        function lo(e) {
            const t = e[3];
            return jt(t) ? t[3] : t
        }
        function Dl(e) {
            return Xp(e[13])
        }
        function Cl(e) {
            return Xp(e[4])
        }
        function Xp(e) {
            for (; null !== e && !jt(e); )
                e = e[4];
            return e
        }
        function ni(e, t, n, r, i) {
            if (null != r) {
                let o, s = !1;
                jt(r) ? o = r : ct(r) && (s = !0,
                r = r[0]);
                const a = Ae(r);
                0 === e && null !== n ? null == i ? ig(t, n, a) : _r(t, n, a, i || null, !0) : 1 === e && null !== n ? _r(t, n, a, i || null, !0) : 2 === e ? function fg(e, t, n) {
                    const r = Us(e, t);
                    r && function MS(e, t, n, r) {
                        Ce(e) ? e.removeChild(t, n, r) : t.removeChild(n)
                    }(e, r, t, n)
                }(t, a, s) : 3 === e && t.destroyNode(a),
                null != o && function TS(e, t, n, r, i) {
                    const o = n[7];
                    o !== Ae(n) && ni(t, e, r, o, i);
                    for (let a = 10; a < n.length; a++) {
                        const u = n[a];
                        co(u[1], u, e, t, r, o)
                    }
                }(t, e, o, n, i)
            }
        }
        function bl(e, t, n) {
            if (Ce(e))
                return e.createElement(t, n);
            {
                const r = null !== n ? function lb(e) {
                    const t = e.toLowerCase();
                    return "svg" === t ? "http://www.w3.org/2000/svg" : "math" === t ? "http://www.w3.org/1998/MathML/" : null
                }(n) : null;
                return null === r ? e.createElement(t) : e.createElementNS(r, t)
            }
        }
        function eg(e, t) {
            const n = e[9]
              , r = n.indexOf(t)
              , i = t[3];
            512 & t[2] && (t[2] &= -513,
            Bu(i, -1)),
            n.splice(r, 1)
        }
        function El(e, t) {
            if (e.length <= 10)
                return;
            const n = 10 + t
              , r = e[n];
            if (r) {
                const i = r[17];
                null !== i && i !== e && eg(i, r),
                t > 0 && (e[n - 1][4] = r[4]);
                const o = Rs(e, 10 + t);
                !function yS(e, t) {
                    co(e, t, t[$], 2, null, null),
                    t[0] = null,
                    t[6] = null
                }(r[1], r);
                const s = o[19];
                null !== s && s.detachView(o[1]),
                r[3] = null,
                r[4] = null,
                r[2] &= -65
            }
            return r
        }
        function tg(e, t) {
            if (!(128 & t[2])) {
                const n = t[$];
                Ce(n) && n.destroyNode && co(e, t, n, 3, null, null),
                function CS(e) {
                    let t = e[13];
                    if (!t)
                        return Sl(e[1], e);
                    for (; t; ) {
                        let n = null;
                        if (ct(t))
                            n = t[13];
                        else {
                            const r = t[10];
                            r && (n = r)
                        }
                        if (!n) {
                            for (; t && !t[4] && t !== e; )
                                ct(t) && Sl(t[1], t),
                                t = t[3];
                            null === t && (t = e),
                            ct(t) && Sl(t[1], t),
                            n = t && t[4]
                        }
                        t = n
                    }
                }(t)
            }
        }
        function Sl(e, t) {
            if (!(128 & t[2])) {
                t[2] &= -65,
                t[2] |= 128,
                function SS(e, t) {
                    let n;
                    if (null != e && null != (n = e.destroyHooks))
                        for (let r = 0; r < n.length; r += 2) {
                            const i = t[n[r]];
                            if (!(i instanceof qi)) {
                                const o = n[r + 1];
                                if (Array.isArray(o))
                                    for (let s = 0; s < o.length; s += 2) {
                                        const a = i[o[s]]
                                          , u = o[s + 1];
                                        try {
                                            u.call(a)
                                        } finally {}
                                    }
                                else
                                    try {
                                        o.call(i)
                                    } finally {}
                            }
                        }
                }(e, t),
                function ES(e, t) {
                    const n = e.cleanup
                      , r = t[7];
                    let i = -1;
                    if (null !== n)
                        for (let o = 0; o < n.length - 1; o += 2)
                            if ("string" == typeof n[o]) {
                                const s = n[o + 1]
                                  , a = "function" == typeof s ? s(t) : Ae(t[s])
                                  , u = r[i = n[o + 2]]
                                  , l = n[o + 3];
                                "boolean" == typeof l ? a.removeEventListener(n[o], u, l) : l >= 0 ? r[i = l]() : r[i = -l].unsubscribe(),
                                o += 2
                            } else {
                                const s = r[i = n[o + 1]];
                                n[o].call(s)
                            }
                    if (null !== r) {
                        for (let o = i + 1; o < r.length; o++)
                            r[o]();
                        t[7] = null
                    }
                }(e, t),
                1 === t[1].type && Ce(t[$]) && t[$].destroy();
                const n = t[17];
                if (null !== n && jt(t[3])) {
                    n !== t[3] && eg(n, t);
                    const r = t[19];
                    null !== r && r.detachView(e)
                }
                !function rS(e) {
                    pl.delete(e[20])
                }(t)
            }
        }
        function ng(e, t, n) {
            return function rg(e, t, n) {
                let r = t;
                for (; null !== r && 40 & r.type; )
                    r = (t = r).parent;
                if (null === r)
                    return n[0];
                if (2 & r.flags) {
                    const i = e.data[r.directiveStart].encapsulation;
                    if (i === sn.None || i === sn.Emulated)
                        return null
                }
                return Tt(r, n)
            }(e, t.parent, n)
        }
        function _r(e, t, n, r, i) {
            Ce(e) ? e.insertBefore(t, n, r, i) : (sg(t) ? t.content : t).insertBefore(n, r, i)
        }
        function ig(e, t, n) {
            Ce(e) ? e.appendChild(t, n) : (sg(t) ? t.content : t).appendChild(n)
        }
        function og(e, t, n, r, i) {
            null !== r ? _r(e, t, n, r, i) : ig(e, t, n)
        }
        function sg(e) {
            return "TEMPLATE" === e.tagName && void 0 !== e.content
        }
        function Us(e, t) {
            return Ce(e) ? e.parentNode(t) : t.parentNode
        }
        let lg = function ug(e, t, n) {
            return 40 & e.type ? Tt(e, n) : null
        };
        function $s(e, t, n, r) {
            const i = ng(e, r, t)
              , o = t[$]
              , a = function ag(e, t, n) {
                return lg(e, t, n)
            }(r.parent || t[6], r, t);
            if (null != i)
                if (Array.isArray(n))
                    for (let u = 0; u < n.length; u++)
                        og(o, i, n[u], a, !1);
                else
                    og(o, i, n, a, !1)
        }
        function Gs(e, t) {
            if (null !== t) {
                const n = t.type;
                if (3 & n)
                    return Tt(t, e);
                if (4 & n)
                    return Il(-1, e[t.index]);
                if (8 & n) {
                    const r = t.child;
                    if (null !== r)
                        return Gs(e, r);
                    {
                        const i = e[t.index];
                        return jt(i) ? Il(-1, i) : Ae(i)
                    }
                }
                if (32 & n)
                    return _l(t, e)() || Ae(e[t.index]);
                {
                    const r = dg(e, t);
                    return null !== r ? Array.isArray(r) ? r[0] : Gs(lo(e[16]), r) : Gs(e, t.next)
                }
            }
            return null
        }
        function dg(e, t) {
            return null !== t ? e[16][6].projection[t.projection] : null
        }
        function Il(e, t) {
            const n = 10 + e + 1;
            if (n < t.length) {
                const r = t[n]
                  , i = r[1].firstChild;
                if (null !== i)
                    return Gs(r, i)
            }
            return t[7]
        }
        function Al(e, t, n, r, i, o, s) {
            for (; null != n; ) {
                const a = r[n.index]
                  , u = n.type;
                if (s && 0 === t && (a && Ze(Ae(a), r),
                n.flags |= 4),
                64 != (64 & n.flags))
                    if (8 & u)
                        Al(e, t, n.child, r, i, o, !1),
                        ni(t, e, i, a, o);
                    else if (32 & u) {
                        const l = _l(n, r);
                        let c;
                        for (; c = l(); )
                            ni(t, e, i, c, o);
                        ni(t, e, i, a, o)
                    } else
                        16 & u ? hg(e, t, r, n, i, o) : ni(t, e, i, a, o);
                n = s ? n.projectionNext : n.next
            }
        }
        function co(e, t, n, r, i, o) {
            Al(n, r, e.firstChild, t, i, o, !1)
        }
        function hg(e, t, n, r, i, o) {
            const s = n[16]
              , u = s[6].projection[r.projection];
            if (Array.isArray(u))
                for (let l = 0; l < u.length; l++)
                    ni(t, e, i, u[l], o);
            else
                Al(e, t, u, s[3], i, o, !0)
        }
        function pg(e, t, n) {
            Ce(e) ? e.setAttribute(t, "style", n) : t.style.cssText = n
        }
        function Tl(e, t, n) {
            Ce(e) ? "" === n ? e.removeAttribute(t, "class") : e.setAttribute(t, "class", n) : t.className = n
        }
        function gg(e, t, n) {
            let r = e.length;
            for (; ; ) {
                const i = e.indexOf(t, n);
                if (-1 === i)
                    return i;
                if (0 === i || e.charCodeAt(i - 1) <= 32) {
                    const o = t.length;
                    if (i + o === r || e.charCodeAt(i + o) <= 32)
                        return i
                }
                n = i + 1
            }
        }
        const mg = "ng-template";
        function RS(e, t, n) {
            let r = 0;
            for (; r < e.length; ) {
                let i = e[r++];
                if (n && "class" === i) {
                    if (i = e[r],
                    -1 !== gg(i.toLowerCase(), t, 0))
                        return !0
                } else if (1 === i) {
                    for (; r < e.length && "string" == typeof (i = e[r++]); )
                        if (i.toLowerCase() === t)
                            return !0;
                    return !1
                }
            }
            return !1
        }
        function vg(e) {
            return 4 === e.type && e.value !== mg
        }
        function FS(e, t, n) {
            return t === (4 !== e.type || n ? e.value : mg)
        }
        function NS(e, t, n) {
            let r = 4;
            const i = e.attrs || []
              , o = function kS(e) {
                for (let t = 0; t < e.length; t++)
                    if (ip(e[t]))
                        return t;
                return e.length
            }(i);
            let s = !1;
            for (let a = 0; a < t.length; a++) {
                const u = t[a];
                if ("number" != typeof u) {
                    if (!s)
                        if (4 & r) {
                            if (r = 2 | 1 & r,
                            "" !== u && !FS(e, u, n) || "" === u && 1 === t.length) {
                                if (Ht(r))
                                    return !1;
                                s = !0
                            }
                        } else {
                            const l = 8 & r ? u : t[++a];
                            if (8 & r && null !== e.attrs) {
                                if (!RS(e.attrs, l, n)) {
                                    if (Ht(r))
                                        return !1;
                                    s = !0
                                }
                                continue
                            }
                            const d = PS(8 & r ? "class" : u, i, vg(e), n);
                            if (-1 === d) {
                                if (Ht(r))
                                    return !1;
                                s = !0;
                                continue
                            }
                            if ("" !== l) {
                                let f;
                                f = d > o ? "" : i[d + 1].toLowerCase();
                                const h = 8 & r ? f : null;
                                if (h && -1 !== gg(h, l, 0) || 2 & r && l !== f) {
                                    if (Ht(r))
                                        return !1;
                                    s = !0
                                }
                            }
                        }
                } else {
                    if (!s && !Ht(r) && !Ht(u))
                        return !1;
                    if (s && Ht(u))
                        continue;
                    s = !1,
                    r = u | 1 & r
                }
            }
            return Ht(r) || s
        }
        function Ht(e) {
            return 0 == (1 & e)
        }
        function PS(e, t, n, r) {
            if (null === t)
                return -1;
            let i = 0;
            if (r || !n) {
                let o = !1;
                for (; i < t.length; ) {
                    const s = t[i];
                    if (s === e)
                        return i;
                    if (3 === s || 6 === s)
                        o = !0;
                    else {
                        if (1 === s || 2 === s) {
                            let a = t[++i];
                            for (; "string" == typeof a; )
                                a = t[++i];
                            continue
                        }
                        if (4 === s)
                            break;
                        if (0 === s) {
                            i += 4;
                            continue
                        }
                    }
                    i += o ? 1 : 2
                }
                return -1
            }
            return function LS(e, t) {
                let n = e.indexOf(4);
                if (n > -1)
                    for (n++; n < e.length; ) {
                        const r = e[n];
                        if ("number" == typeof r)
                            return -1;
                        if (r === t)
                            return n;
                        n++
                    }
                return -1
            }(t, e)
        }
        function yg(e, t, n=!1) {
            for (let r = 0; r < t.length; r++)
                if (NS(e, t[r], n))
                    return !0;
            return !1
        }
        function _g(e, t) {
            return e ? ":not(" + t.trim() + ")" : t
        }
        function jS(e) {
            let t = e[0]
              , n = 1
              , r = 2
              , i = ""
              , o = !1;
            for (; n < e.length; ) {
                let s = e[n];
                if ("string" == typeof s)
                    if (2 & r) {
                        const a = e[++n];
                        i += "[" + s + (a.length > 0 ? '="' + a + '"' : "") + "]"
                    } else
                        8 & r ? i += "." + s : 4 & r && (i += " " + s);
                else
                    "" !== i && !Ht(s) && (t += _g(o, i),
                    i = ""),
                    r = s,
                    o = o || !Ht(r);
                n++
            }
            return "" !== i && (t += _g(o, i)),
            t
        }
        const L = {};
        function B(e) {
            Dg(Y(), D(), nt() + e, !1)
        }
        function Dg(e, t, n, r) {
            if (!r)
                if (3 == (3 & t[2])) {
                    const o = e.preOrderCheckHooks;
                    null !== o && bs(t, o, n)
                } else {
                    const o = e.preOrderHooks;
                    null !== o && Es(t, o, 0, n)
                }
            Yn(n)
        }
        const Eg = new N("ENVIRONMENT_INITIALIZER")
          , Sg = new N("INJECTOR_DEF_TYPES");
        function zS(...e) {
            return {
                \u0275providers: Mg(0, e)
            }
        }
        function Mg(e, ...t) {
            const n = []
              , r = new Set;
            let i;
            return Rn(t, o => {
                const s = o;
                xl(s, n, [], r) && (i || (i = []),
                i.push(s))
            }
            ),
            void 0 !== i && Ig(i, n),
            n
        }
        function Ig(e, t) {
            for (let n = 0; n < e.length; n++) {
                const {providers: i} = e[n];
                Rn(i, o => {
                    t.push(o)
                }
                )
            }
        }
        function xl(e, t, n, r) {
            if (!(e = x(e)))
                return !1;
            let i = null
              , o = Rh(e);
            const s = !o && ae(e);
            if (o || s) {
                if (s && !s.standalone)
                    return !1;
                i = e
            } else {
                const u = e.ngModule;
                if (o = Rh(u),
                !o)
                    return !1;
                i = u
            }
            const a = r.has(i);
            if (s) {
                if (a)
                    return !1;
                if (r.add(i),
                s.dependencies) {
                    const u = "function" == typeof s.dependencies ? s.dependencies() : s.dependencies;
                    for (const l of u)
                        xl(l, t, n, r)
                }
            } else {
                if (!o)
                    return !1;
                {
                    if (null != o.imports && !a) {
                        let l;
                        r.add(i);
                        try {
                            Rn(o.imports, c => {
                                xl(c, t, n, r) && (l || (l = []),
                                l.push(c))
                            }
                            )
                        } finally {}
                        void 0 !== l && Ig(l, t)
                    }
                    if (!a) {
                        const l = yr(i) || ( () => new i);
                        t.push({
                            provide: i,
                            useFactory: l,
                            deps: Q
                        }, {
                            provide: Sg,
                            useValue: i,
                            multi: !0
                        }, {
                            provide: Eg,
                            useValue: () => S(i),
                            multi: !0
                        })
                    }
                    const u = o.providers;
                    null == u || a || Rn(u, c => {
                        t.push(c)
                    }
                    )
                }
            }
            return i !== e && void 0 !== e.providers
        }
        const ZS = oe({
            provide: String,
            useValue: oe
        });
        function Rl(e) {
            return null !== e && "object" == typeof e && ZS in e
        }
        function Dr(e) {
            return "function" == typeof e
        }
        const Fl = new N("INJECTOR",-1);
        class xg {
            get(t, n=Ki) {
                if (n === Ki) {
                    const r = new Error(`NullInjectorError: No provider for ${se(t)}!`);
                    throw r.name = "NullInjectorError",
                    r
                }
                return n
            }
        }
        const Nl = new N("Set Injector scope.")
          , qs = {}
          , JS = {};
        let Pl;
        function Ol() {
            return void 0 === Pl && (Pl = new xg),
            Pl
        }
        class Cr {
        }
        class Rg extends Cr {
            constructor(t, n, r, i) {
                super(),
                this.parent = n,
                this.source = r,
                this.scopes = i,
                this.records = new Map,
                this._ngOnDestroyHooks = new Set,
                this._onDestroyHooks = [],
                this._destroyed = !1,
                Ll(t, s => this.processProvider(s)),
                this.records.set(Fl, ri(void 0, this)),
                i.has("environment") && this.records.set(Cr, ri(void 0, this));
                const o = this.records.get(Nl);
                null != o && "string" == typeof o.value && this.scopes.add(o.value),
                this.injectorDefTypes = new Set(this.get(Sg.multi, Q, A.Self))
            }
            get destroyed() {
                return this._destroyed
            }
            destroy() {
                this.assertNotDestroyed(),
                this._destroyed = !0;
                try {
                    for (const t of this._ngOnDestroyHooks)
                        t.ngOnDestroy();
                    for (const t of this._onDestroyHooks)
                        t()
                } finally {
                    this.records.clear(),
                    this._ngOnDestroyHooks.clear(),
                    this.injectorDefTypes.clear(),
                    this._onDestroyHooks.length = 0
                }
            }
            onDestroy(t) {
                this._onDestroyHooks.push(t)
            }
            get(t, n=Ki, r=A.Default) {
                this.assertNotDestroyed();
                const i = Ps(this)
                  , o = on(void 0);
                try {
                    if (!(r & A.SkipSelf)) {
                        let a = this.records.get(t);
                        if (void 0 === a) {
                            const u = function tM(e) {
                                return "function" == typeof e || "object" == typeof e && e instanceof N
                            }(t) && Eu(t);
                            a = u && this.injectableDefInScope(u) ? ri(kl(t), qs) : null,
                            this.records.set(t, a)
                        }
                        if (null != a)
                            return this.hydrate(t, a)
                    }
                    return (r & A.Self ? Ol() : this.parent).get(t, n = r & A.Optional && n === Ki ? null : n)
                } catch (s) {
                    if ("NullInjectorError" === s.name) {
                        if ((s[Ns] = s[Ns] || []).unshift(se(t)),
                        i)
                            throw s;
                        return function lE(e, t, n, r) {
                            const i = e[Ns];
                            throw t[Cp] && i.unshift(t[Cp]),
                            e.message = function cE(e, t, n, r=null) {
                                e = e && "\n" === e.charAt(0) && "\u0275" == e.charAt(1) ? e.slice(2) : e;
                                let i = se(t);
                                if (Array.isArray(t))
                                    i = t.map(se).join(" -> ");
                                else if ("object" == typeof t) {
                                    let o = [];
                                    for (let s in t)
                                        if (t.hasOwnProperty(s)) {
                                            let a = t[s];
                                            o.push(s + ":" + ("string" == typeof a ? JSON.stringify(a) : se(a)))
                                        }
                                    i = `{${o.join(", ")}}`
                                }
                                return `${n}${r ? "(" + r + ")" : ""}[${i}]: ${e.replace(iE, "\n  ")}`
                            }("\n" + e.message, i, n, r),
                            e.ngTokenPath = i,
                            e[Ns] = null,
                            e
                        }(s, t, "R3InjectorError", this.source)
                    }
                    throw s
                } finally {
                    on(o),
                    Ps(i)
                }
            }
            resolveInjectorInitializers() {
                const t = Ps(this)
                  , n = on(void 0);
                try {
                    const r = this.get(Eg.multi, Q, A.Self);
                    for (const i of r)
                        i()
                } finally {
                    Ps(t),
                    on(n)
                }
            }
            toString() {
                const t = []
                  , n = this.records;
                for (const r of n.keys())
                    t.push(se(r));
                return `R3Injector[${t.join(", ")}]`
            }
            assertNotDestroyed() {
                if (this._destroyed)
                    throw new U(205,!1)
            }
            processProvider(t) {
                let n = Dr(t = x(t)) ? t : x(t && t.provide);
                const r = function XS(e) {
                    return Rl(e) ? ri(void 0, e.useValue) : ri(Fg(e), qs)
                }(t);
                if (Dr(t) || !0 !== t.multi)
                    this.records.get(n);
                else {
                    let i = this.records.get(n);
                    i || (i = ri(void 0, qs, !0),
                    i.factory = () => il(i.multi),
                    this.records.set(n, i)),
                    n = t,
                    i.multi.push(t)
                }
                this.records.set(n, r)
            }
            hydrate(t, n) {
                return n.value === qs && (n.value = JS,
                n.value = n.factory()),
                "object" == typeof n.value && n.value && function eM(e) {
                    return null !== e && "object" == typeof e && "function" == typeof e.ngOnDestroy
                }(n.value) && this._ngOnDestroyHooks.add(n.value),
                n.value
            }
            injectableDefInScope(t) {
                if (!t.providedIn)
                    return !1;
                const n = x(t.providedIn);
                return "string" == typeof n ? "any" === n || this.scopes.has(n) : this.injectorDefTypes.has(n)
            }
        }
        function kl(e) {
            const t = Eu(e)
              , n = null !== t ? t.factory : yr(e);
            if (null !== n)
                return n;
            if (e instanceof N)
                throw new U(204,!1);
            if (e instanceof Function)
                return function QS(e) {
                    const t = e.length;
                    if (t > 0)
                        throw function Xi(e, t) {
                            const n = [];
                            for (let r = 0; r < e; r++)
                                n.push(t);
                            return n
                        }(t, "?"),
                        new U(204,!1);
                    const n = function U0(e) {
                        const t = e && (e[ds] || e[Fh]);
                        if (t) {
                            const n = function $0(e) {
                                if (e.hasOwnProperty("name"))
                                    return e.name;
                                const t = ("" + e).match(/^function\s*([^\s(]+)/);
                                return null === t ? "" : t[1]
                            }(e);
                            return console.warn(`DEPRECATED: DI is instantiating a token "${n}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${n}" class.`),
                            t
                        }
                        return null
                    }(e);
                    return null !== n ? () => n.factory(e) : () => new e
                }(e);
            throw new U(204,!1)
        }
        function Fg(e, t, n) {
            let r;
            if (Dr(e)) {
                const i = x(e);
                return yr(i) || kl(i)
            }
            if (Rl(e))
                r = () => x(e.useValue);
            else if (function Tg(e) {
                return !(!e || !e.useFactory)
            }(e))
                r = () => e.useFactory(...il(e.deps || []));
            else if (function Ag(e) {
                return !(!e || !e.useExisting)
            }(e))
                r = () => S(x(e.useExisting));
            else {
                const i = x(e && (e.useClass || e.provide));
                if (!function KS(e) {
                    return !!e.deps
                }(e))
                    return yr(i) || kl(i);
                r = () => new i(...il(e.deps))
            }
            return r
        }
        function ri(e, t, n=!1) {
            return {
                factory: e,
                value: t,
                multi: n ? [] : void 0
            }
        }
        function nM(e) {
            return !!e.\u0275providers
        }
        function Ll(e, t) {
            for (const n of e)
                Array.isArray(n) ? Ll(n, t) : nM(n) ? Ll(n.\u0275providers, t) : t(n)
        }
        function Ng(e, t=null, n=null, r) {
            const i = Pg(e, t, n, r);
            return i.resolveInjectorInitializers(),
            i
        }
        function Pg(e, t=null, n=null, r, i=new Set) {
            const o = [n || Q, zS(e)];
            return r = r || ("object" == typeof e ? void 0 : se(e)),
            new Rg(o,t || Ol(),r || null,i)
        }
        let Ye = ( () => {
            class e {
                static create(n, r) {
                    var i;
                    if (Array.isArray(n))
                        return Ng({
                            name: ""
                        }, r, n, "");
                    {
                        const o = null !== (i = n.name) && void 0 !== i ? i : "";
                        return Ng({
                            name: o
                        }, n.parent, n.providers, o)
                    }
                }
            }
            return e.THROW_IF_NOT_FOUND = Ki,
            e.NULL = new xg,
            e.\u0275prov = I({
                token: e,
                providedIn: "any",
                factory: () => S(Fl)
            }),
            e.__NG_ELEMENT_ID__ = -1,
            e
        }
        )();
        function _(e, t=A.Default) {
            const n = D();
            return null === n ? S(e, t) : dp(Oe(), n, x(e), t)
        }
        function Ul() {
            throw new Error("invalid")
        }
        function zs(e, t) {
            return e << 17 | t << 2
        }
        function Ut(e) {
            return e >> 17 & 32767
        }
        function Wl(e) {
            return 2 | e
        }
        function Pn(e) {
            return (131068 & e) >> 2
        }
        function zl(e, t) {
            return -131069 & e | t << 2
        }
        function Zl(e) {
            return 1 | e
        }
        function em(e, t) {
            const n = e.contentQueries;
            if (null !== n)
                for (let r = 0; r < n.length; r += 2) {
                    const i = n[r]
                      , o = n[r + 1];
                    if (-1 !== o) {
                        const s = e.data[o];
                        qu(i),
                        s.contentQueries(2, t[o], o)
                    }
                }
        }
        function fo(e, t, n, r, i, o, s, a, u, l, c) {
            const d = t.blueprint.slice();
            return d[0] = i,
            d[2] = 76 | r,
            (null !== c || e && 1024 & e[2]) && (d[2] |= 1024),
            qh(d),
            d[3] = d[15] = e,
            d[8] = n,
            d[10] = s || e && e[10],
            d[$] = a || e && e[$],
            d[12] = u || e && e[12] || null,
            d[9] = l || e && e[9] || null,
            d[6] = o,
            d[20] = function tS() {
                return eS++
            }(),
            d[21] = c,
            d[16] = 2 == t.type ? e[16] : d,
            d
        }
        function oi(e, t, n, r, i) {
            let o = e.data[t];
            if (null === o)
                o = function rc(e, t, n, r, i) {
                    const o = Zh()
                      , s = Hu()
                      , u = e.data[t] = function PM(e, t, n, r, i, o) {
                        return {
                            type: n,
                            index: r,
                            insertBeforeIndex: null,
                            injectorIndex: t ? t.injectorIndex : -1,
                            directiveStart: -1,
                            directiveEnd: -1,
                            directiveStylingLast: -1,
                            propertyBindings: null,
                            flags: 0,
                            providerIndexes: 0,
                            value: i,
                            attrs: o,
                            mergedAttrs: null,
                            localNames: null,
                            initialInputs: void 0,
                            inputs: null,
                            outputs: null,
                            tViews: null,
                            next: null,
                            projectionNext: null,
                            child: null,
                            parent: t,
                            projection: null,
                            styles: null,
                            stylesWithoutHost: null,
                            residualStyles: void 0,
                            classes: null,
                            classesWithoutHost: null,
                            residualClasses: void 0,
                            classBindings: 0,
                            styleBindings: 0
                        }
                    }(0, s ? o : o && o.parent, n, t, r, i);
                    return null === e.firstChild && (e.firstChild = u),
                    null !== o && (s ? null == o.child && null !== u.parent && (o.child = u) : null === o.next && (o.next = u)),
                    u
                }(e, t, n, r, i),
                function Cb() {
                    return O.lFrame.inI18n
                }() && (o.flags |= 64);
            else if (64 & o.type) {
                o.type = n,
                o.value = r,
                o.attrs = i;
                const s = function Gi() {
                    const e = O.lFrame
                      , t = e.currentTNode;
                    return e.isParent ? t : t.parent
                }();
                o.injectorIndex = null === s ? -1 : s.injectorIndex
            }
            return ln(o, !0),
            o
        }
        function si(e, t, n, r) {
            if (0 === n)
                return -1;
            const i = t.length;
            for (let o = 0; o < n; o++)
                t.push(r),
                e.blueprint.push(r),
                e.data.push(null);
            return i
        }
        function ho(e, t, n) {
            Ds(t);
            try {
                const r = e.viewQuery;
                null !== r && fc(1, r, n);
                const i = e.template;
                null !== i && tm(e, t, i, 1, n),
                e.firstCreatePass && (e.firstCreatePass = !1),
                e.staticContentQueries && em(e, t),
                e.staticViewQueries && fc(2, e.viewQuery, n);
                const o = e.components;
                null !== o && function RM(e, t) {
                    for (let n = 0; n < t.length; n++)
                        XM(e, t[n])
                }(t, o)
            } catch (r) {
                throw e.firstCreatePass && (e.incompleteFirstPass = !0,
                e.firstCreatePass = !1),
                r
            } finally {
                t[2] &= -5,
                Cs()
            }
        }
        function ai(e, t, n, r) {
            const i = t[2];
            if (128 != (128 & i)) {
                Ds(t);
                try {
                    qh(t),
                    function Yh(e) {
                        return O.lFrame.bindingIndex = e
                    }(e.bindingStartIndex),
                    null !== n && tm(e, t, n, 2, r);
                    const s = 3 == (3 & i);
                    if (s) {
                        const l = e.preOrderCheckHooks;
                        null !== l && bs(t, l, null)
                    } else {
                        const l = e.preOrderHooks;
                        null !== l && Es(t, l, 0, null),
                        Wu(t, 0)
                    }
                    if (function JM(e) {
                        for (let t = Dl(e); null !== t; t = Cl(t)) {
                            if (!t[2])
                                continue;
                            const n = t[9];
                            for (let r = 0; r < n.length; r++) {
                                const i = n[r]
                                  , o = i[3];
                                0 == (512 & i[2]) && Bu(o, 1),
                                i[2] |= 512
                            }
                        }
                    }(t),
                    function YM(e) {
                        for (let t = Dl(e); null !== t; t = Cl(t))
                            for (let n = 10; n < t.length; n++) {
                                const r = t[n]
                                  , i = r[1];
                                ju(r) && ai(i, r, i.template, r[8])
                            }
                    }(t),
                    null !== e.contentQueries && em(e, t),
                    s) {
                        const l = e.contentCheckHooks;
                        null !== l && bs(t, l)
                    } else {
                        const l = e.contentHooks;
                        null !== l && Es(t, l, 1),
                        Wu(t, 1)
                    }
                    !function TM(e, t) {
                        const n = e.hostBindingOpCodes;
                        if (null !== n)
                            try {
                                for (let r = 0; r < n.length; r++) {
                                    const i = n[r];
                                    if (i < 0)
                                        Yn(~i);
                                    else {
                                        const o = i
                                          , s = n[++r]
                                          , a = n[++r];
                                        wb(s, o),
                                        a(2, t[o])
                                    }
                                }
                            } finally {
                                Yn(-1)
                            }
                    }(e, t);
                    const a = e.components;
                    null !== a && function xM(e, t) {
                        for (let n = 0; n < t.length; n++)
                            QM(e, t[n])
                    }(t, a);
                    const u = e.viewQuery;
                    if (null !== u && fc(2, u, r),
                    s) {
                        const l = e.viewCheckHooks;
                        null !== l && bs(t, l)
                    } else {
                        const l = e.viewHooks;
                        null !== l && Es(t, l, 2),
                        Wu(t, 2)
                    }
                    !0 === e.firstUpdatePass && (e.firstUpdatePass = !1),
                    t[2] &= -41,
                    512 & t[2] && (t[2] &= -513,
                    Bu(t[3], -1))
                } finally {
                    Cs()
                }
            }
        }
        function FM(e, t, n, r) {
            const i = t[10]
              , s = function Gh(e) {
                return 4 == (4 & e[2])
            }(t);
            try {
                !s && i.begin && i.begin(),
                s && ho(e, t, r),
                ai(e, t, n, r)
            } finally {
                !s && i.end && i.end()
            }
        }
        function tm(e, t, n, r, i) {
            const o = nt()
              , s = 2 & r;
            try {
                Yn(-1),
                s && t.length > 22 && Dg(e, t, 22, !1),
                n(r, i)
            } finally {
                Yn(o)
            }
        }
        function ic(e, t, n) {
            !zh() || (function HM(e, t, n, r) {
                const i = n.directiveStart
                  , o = n.directiveEnd;
                e.firstCreatePass || zi(n, t),
                Ze(r, t);
                const s = n.initialInputs;
                for (let a = i; a < o; a++) {
                    const u = e.data[a]
                      , l = Bt(u);
                    l && WM(t, n, u);
                    const c = Zi(t, e, a, n);
                    Ze(c, t),
                    null !== s && zM(0, a - i, c, u, 0, s),
                    l && (vt(n.index, t)[8] = c)
                }
            }(e, t, n, Tt(n, t)),
            128 == (128 & n.flags) && function UM(e, t, n) {
                const r = n.directiveStart
                  , i = n.directiveEnd
                  , o = n.index
                  , s = function bb() {
                    return O.lFrame.currentDirectiveIndex
                }();
                try {
                    Yn(o);
                    for (let a = r; a < i; a++) {
                        const u = e.data[a]
                          , l = t[a];
                        $u(a),
                        (null !== u.hostBindings || 0 !== u.hostVars || null !== u.hostAttrs) && lm(u, l)
                    }
                } finally {
                    Yn(-1),
                    $u(s)
                }
            }(e, t, n))
        }
        function oc(e, t, n=Tt) {
            const r = t.localNames;
            if (null !== r) {
                let i = t.index + 1;
                for (let o = 0; o < r.length; o += 2) {
                    const s = r[o + 1]
                      , a = -1 === s ? n(t, e) : e[s];
                    e[i++] = a
                }
            }
        }
        function rm(e) {
            const t = e.tView;
            return null === t || t.incompleteFirstPass ? e.tView = Js(1, null, e.template, e.decls, e.vars, e.directiveDefs, e.pipeDefs, e.viewQuery, e.schemas, e.consts) : t
        }
        function Js(e, t, n, r, i, o, s, a, u, l) {
            const c = 22 + r
              , d = c + i
              , f = function NM(e, t) {
                const n = [];
                for (let r = 0; r < t; r++)
                    n.push(r < e ? null : L);
                return n
            }(c, d)
              , h = "function" == typeof l ? l() : l;
            return f[1] = {
                type: e,
                blueprint: f,
                template: n,
                queries: null,
                viewQuery: a,
                declTNode: t,
                data: f.slice().fill(null, c),
                bindingStartIndex: c,
                expandoStartIndex: d,
                hostBindingOpCodes: null,
                firstCreatePass: !0,
                firstUpdatePass: !0,
                staticViewQueries: !1,
                staticContentQueries: !1,
                preOrderHooks: null,
                preOrderCheckHooks: null,
                contentHooks: null,
                contentCheckHooks: null,
                viewHooks: null,
                viewCheckHooks: null,
                destroyHooks: null,
                cleanup: null,
                contentQueries: null,
                components: null,
                directiveRegistry: "function" == typeof o ? o() : o,
                pipeRegistry: "function" == typeof s ? s() : s,
                firstChild: null,
                schemas: u,
                consts: h,
                incompleteFirstPass: !1
            }
        }
        function am(e, t, n) {
            for (let r in e)
                if (e.hasOwnProperty(r)) {
                    const i = e[r];
                    (n = null === n ? {} : n).hasOwnProperty(r) ? n[r].push(t, i) : n[r] = [t, i]
                }
            return n
        }
        function Ct(e, t, n, r, i, o, s, a) {
            const u = Tt(t, n);
            let c, l = t.inputs;
            !a && null != l && (c = l[r]) ? (_m(e, n, c, r, i),
            ms(t) && function LM(e, t) {
                const n = vt(t, e);
                16 & n[2] || (n[2] |= 32)
            }(n, t.index)) : 3 & t.type && (r = function kM(e) {
                return "class" === e ? "className" : "for" === e ? "htmlFor" : "formaction" === e ? "formAction" : "innerHtml" === e ? "innerHTML" : "readonly" === e ? "readOnly" : "tabindex" === e ? "tabIndex" : e
            }(r),
            i = null != s ? s(i, t.value || "", r) : i,
            Ce(o) ? o.setProperty(u, r, i) : Zu(r) || (u.setProperty ? u.setProperty(r, i) : u[r] = i))
        }
        function sc(e, t, n, r) {
            let i = !1;
            if (zh()) {
                const o = function $M(e, t, n) {
                    const r = e.directiveRegistry;
                    let i = null;
                    if (r)
                        for (let o = 0; o < r.length; o++) {
                            const s = r[o];
                            yg(n, s.selectors, !1) && (i || (i = []),
                            Ts(zi(n, t), e, s.type),
                            Bt(s) ? (cm(e, n),
                            i.unshift(s)) : i.push(s))
                        }
                    return i
                }(e, t, n)
                  , s = null === r ? null : {
                    "": -1
                };
                if (null !== o) {
                    i = !0,
                    dm(n, e.data.length, o.length);
                    for (let c = 0; c < o.length; c++) {
                        const d = o[c];
                        d.providersResolver && d.providersResolver(d)
                    }
                    let a = !1
                      , u = !1
                      , l = si(e, t, o.length, null);
                    for (let c = 0; c < o.length; c++) {
                        const d = o[c];
                        n.mergedAttrs = Ms(n.mergedAttrs, d.hostAttrs),
                        fm(e, n, t, l, d),
                        qM(l, d, s),
                        null !== d.contentQueries && (n.flags |= 8),
                        (null !== d.hostBindings || null !== d.hostAttrs || 0 !== d.hostVars) && (n.flags |= 128);
                        const f = d.type.prototype;
                        !a && (f.ngOnChanges || f.ngOnInit || f.ngDoCheck) && ((e.preOrderHooks || (e.preOrderHooks = [])).push(n.index),
                        a = !0),
                        !u && (f.ngOnChanges || f.ngDoCheck) && ((e.preOrderCheckHooks || (e.preOrderCheckHooks = [])).push(n.index),
                        u = !0),
                        l++
                    }
                    !function OM(e, t) {
                        const r = t.directiveEnd
                          , i = e.data
                          , o = t.attrs
                          , s = [];
                        let a = null
                          , u = null;
                        for (let l = t.directiveStart; l < r; l++) {
                            const c = i[l]
                              , d = c.inputs
                              , f = null === o || vg(t) ? null : ZM(d, o);
                            s.push(f),
                            a = am(d, l, a),
                            u = am(c.outputs, l, u)
                        }
                        null !== a && (a.hasOwnProperty("class") && (t.flags |= 16),
                        a.hasOwnProperty("style") && (t.flags |= 32)),
                        t.initialInputs = s,
                        t.inputs = a,
                        t.outputs = u
                    }(e, n)
                }
                s && function GM(e, t, n) {
                    if (t) {
                        const r = e.localNames = [];
                        for (let i = 0; i < t.length; i += 2) {
                            const o = n[t[i + 1]];
                            if (null == o)
                                throw new U(-301,!1);
                            r.push(t[i], o)
                        }
                    }
                }(n, r, s)
            }
            return n.mergedAttrs = Ms(n.mergedAttrs, n.attrs),
            i
        }
        function um(e, t, n, r, i, o) {
            const s = o.hostBindings;
            if (s) {
                let a = e.hostBindingOpCodes;
                null === a && (a = e.hostBindingOpCodes = []);
                const u = ~t.index;
                (function BM(e) {
                    let t = e.length;
                    for (; t > 0; ) {
                        const n = e[--t];
                        if ("number" == typeof n && n < 0)
                            return n
                    }
                    return 0
                }
                )(a) != u && a.push(u),
                a.push(r, i, s)
            }
        }
        function lm(e, t) {
            null !== e.hostBindings && e.hostBindings(1, t)
        }
        function cm(e, t) {
            t.flags |= 2,
            (e.components || (e.components = [])).push(t.index)
        }
        function qM(e, t, n) {
            if (n) {
                if (t.exportAs)
                    for (let r = 0; r < t.exportAs.length; r++)
                        n[t.exportAs[r]] = e;
                Bt(t) && (n[""] = e)
            }
        }
        function dm(e, t, n) {
            e.flags |= 1,
            e.directiveStart = t,
            e.directiveEnd = t + n,
            e.providerIndexes = t
        }
        function fm(e, t, n, r, i) {
            e.data[r] = i;
            const o = i.factory || (i.factory = yr(i.type))
              , s = new qi(o,Bt(i),_);
            e.blueprint[r] = s,
            n[r] = s,
            um(e, t, 0, r, si(e, n, i.hostVars, L), i)
        }
        function WM(e, t, n) {
            const r = Tt(t, e)
              , i = rm(n)
              , o = e[10]
              , s = Qs(e, fo(e, i, null, n.onPush ? 32 : 16, r, t, o, o.createRenderer(r, n), null, null, null));
            e[t.index] = s
        }
        function fn(e, t, n, r, i, o) {
            const s = Tt(e, t);
            !function ac(e, t, n, r, i, o, s) {
                if (null == o)
                    Ce(e) ? e.removeAttribute(t, i, n) : t.removeAttribute(i);
                else {
                    const a = null == s ? k(o) : s(o, r || "", i);
                    Ce(e) ? e.setAttribute(t, i, a, n) : n ? t.setAttributeNS(n, i, a) : t.setAttribute(i, a)
                }
            }(t[$], s, o, e.value, n, r, i)
        }
        function zM(e, t, n, r, i, o) {
            const s = o[t];
            if (null !== s) {
                const a = r.setInput;
                for (let u = 0; u < s.length; ) {
                    const l = s[u++]
                      , c = s[u++]
                      , d = s[u++];
                    null !== a ? r.setInput(n, d, l, c) : n[c] = d
                }
            }
        }
        function ZM(e, t) {
            let n = null
              , r = 0;
            for (; r < t.length; ) {
                const i = t[r];
                if (0 !== i)
                    if (5 !== i) {
                        if ("number" == typeof i)
                            break;
                        e.hasOwnProperty(i) && (null === n && (n = []),
                        n.push(i, e[i], t[r + 1])),
                        r += 2
                    } else
                        r += 2;
                else
                    r += 4
            }
            return n
        }
        function hm(e, t, n, r) {
            return new Array(e,!0,!1,t,null,0,r,n,null,null)
        }
        function QM(e, t) {
            const n = vt(t, e);
            if (ju(n)) {
                const r = n[1];
                48 & n[2] ? ai(r, n, r.template, n[8]) : n[5] > 0 && uc(n)
            }
        }
        function uc(e) {
            for (let r = Dl(e); null !== r; r = Cl(r))
                for (let i = 10; i < r.length; i++) {
                    const o = r[i];
                    if (512 & o[2]) {
                        const s = o[1];
                        ai(s, o, s.template, o[8])
                    } else
                        o[5] > 0 && uc(o)
                }
            const n = e[1].components;
            if (null !== n)
                for (let r = 0; r < n.length; r++) {
                    const i = vt(n[r], e);
                    ju(i) && i[5] > 0 && uc(i)
                }
        }
        function XM(e, t) {
            const n = vt(t, e)
              , r = n[1];
            (function KM(e, t) {
                for (let n = t.length; n < e.blueprint.length; n++)
                    t.push(e.blueprint[n])
            }
            )(r, n),
            ho(r, n, n[8])
        }
        function Qs(e, t) {
            return e[13] ? e[14][4] = t : e[13] = t,
            e[14] = t,
            t
        }
        function lc(e) {
            for (; e; ) {
                e[2] |= 32;
                const t = lo(e);
                if (K0(e) && !t)
                    return e;
                e = t
            }
            return null
        }
        function pm(e) {
            !function cc(e) {
                for (let t = 0; t < e.components.length; t++) {
                    const n = e.components[t]
                      , r = vl(n);
                    if (null !== r) {
                        const i = r[1];
                        FM(i, r, i.template, n)
                    }
                }
            }(e[8])
        }
        function fc(e, t, n) {
            qu(0),
            t(e, n)
        }
        const tI = ( () => Promise.resolve(null))();
        function gm(e) {
            return e[7] || (e[7] = [])
        }
        function mm(e) {
            return e.cleanup || (e.cleanup = [])
        }
        function ym(e, t) {
            const n = e[9]
              , r = n ? n.get(ei, null) : null;
            r && r.handleError(t)
        }
        function _m(e, t, n, r, i) {
            for (let o = 0; o < n.length; ) {
                const s = n[o++]
                  , a = n[o++]
                  , u = t[s]
                  , l = e.data[s];
                null !== l.setInput ? l.setInput(u, i, r, a) : u[a] = i
            }
        }
        function On(e, t, n) {
            const r = ys(t, e);
            !function Kp(e, t, n) {
                Ce(e) ? e.setValue(t, n) : t.textContent = n
            }(e[$], r, n)
        }
        function Xs(e, t, n) {
            let r = n ? e.styles : null
              , i = n ? e.classes : null
              , o = 0;
            if (null !== t)
                for (let s = 0; s < t.length; s++) {
                    const a = t[s];
                    "number" == typeof a ? o = a : 1 == o ? i = wu(i, a) : 2 == o && (r = wu(r, a + ": " + t[++s] + ";"))
                }
            n ? e.styles = r : e.stylesWithoutHost = r,
            n ? e.classes = i : e.classesWithoutHost = i
        }
        function fI() {
            const e = Oe();
            ws(D()[1], e)
        }
        function ee(e) {
            let t = function Rm(e) {
                return Object.getPrototypeOf(e.prototype).constructor
            }(e.type)
              , n = !0;
            const r = [e];
            for (; t; ) {
                let i;
                if (Bt(e))
                    i = t.\u0275cmp || t.\u0275dir;
                else {
                    if (t.\u0275cmp)
                        throw new U(903,!1);
                    i = t.\u0275dir
                }
                if (i) {
                    if (n) {
                        r.push(i);
                        const s = e;
                        s.inputs = pc(e.inputs),
                        s.declaredInputs = pc(e.declaredInputs),
                        s.outputs = pc(e.outputs);
                        const a = i.hostBindings;
                        a && mI(e, a);
                        const u = i.viewQuery
                          , l = i.contentQueries;
                        if (u && pI(e, u),
                        l && gI(e, l),
                        Cu(e.inputs, i.inputs),
                        Cu(e.declaredInputs, i.declaredInputs),
                        Cu(e.outputs, i.outputs),
                        Bt(i) && i.data.animation) {
                            const c = e.data;
                            c.animation = (c.animation || []).concat(i.data.animation)
                        }
                    }
                    const o = i.features;
                    if (o)
                        for (let s = 0; s < o.length; s++) {
                            const a = o[s];
                            a && a.ngInherit && a(e),
                            a === ee && (n = !1)
                        }
                }
                t = Object.getPrototypeOf(t)
            }
            !function hI(e) {
                let t = 0
                  , n = null;
                for (let r = e.length - 1; r >= 0; r--) {
                    const i = e[r];
                    i.hostVars = t += i.hostVars,
                    i.hostAttrs = Ms(i.hostAttrs, n = Ms(n, i.hostAttrs))
                }
            }(r)
        }
        function pc(e) {
            return e === Lr ? {} : e === Q ? [] : e
        }
        function pI(e, t) {
            const n = e.viewQuery;
            e.viewQuery = n ? (r, i) => {
                t(r, i),
                n(r, i)
            }
            : t
        }
        function gI(e, t) {
            const n = e.contentQueries;
            e.contentQueries = n ? (r, i, o) => {
                t(r, i, o),
                n(r, i, o)
            }
            : t
        }
        function mI(e, t) {
            const n = e.hostBindings;
            e.hostBindings = n ? (r, i) => {
                t(r, i),
                n(r, i)
            }
            : t
        }
        let Ks = null;
        function wr() {
            if (!Ks) {
                const e = re.Symbol;
                if (e && e.iterator)
                    Ks = e.iterator;
                else {
                    const t = Object.getOwnPropertyNames(Map.prototype);
                    for (let n = 0; n < t.length; ++n) {
                        const r = t[n];
                        "entries" !== r && "size" !== r && Map.prototype[r] === Map.prototype.entries && (Ks = r)
                    }
                }
            }
            return Ks
        }
        function po(e) {
            return !!function gc(e) {
                return null !== e && ("function" == typeof e || "object" == typeof e)
            }(e) && (Array.isArray(e) || !(e instanceof Map) && wr()in e)
        }
        function Je(e, t, n) {
            return !Object.is(e[t], n) && (e[t] = n,
            !0)
        }
        function pn(e, t, n, r) {
            const i = D();
            return Je(i, $r(), t) && (Y(),
            fn(we(), i, e, t, n, r)),
            pn
        }
        function li(e, t, n, r) {
            return Je(e, $r(), n) ? t + k(n) + r : L
        }
        function ue(e, t, n, r, i, o, s, a) {
            const u = D()
              , l = Y()
              , c = e + 22
              , d = l.firstCreatePass ? function bI(e, t, n, r, i, o, s, a, u) {
                const l = t.consts
                  , c = oi(t, e, 4, s || null, Zn(l, a));
                sc(t, n, c, Zn(l, u)),
                ws(t, c);
                const d = c.tViews = Js(2, c, r, i, o, t.directiveRegistry, t.pipeRegistry, null, t.schemas, l);
                return null !== t.queries && (t.queries.template(t, c),
                d.queries = t.queries.embeddedTView(c)),
                c
            }(c, l, u, t, n, r, i, o, s) : l.data[c];
            ln(d, !1);
            const f = u[$].createComment("");
            $s(l, u, f, d),
            Ze(f, u),
            Qs(u, u[c] = hm(f, u, f, d)),
            vs(d) && ic(l, u, d),
            null != s && oc(u, d, a)
        }
        function z(e, t, n) {
            const r = D();
            return Je(r, $r(), t) && Ct(Y(), we(), r, e, t, r[$], n, !1),
            z
        }
        function mc(e, t, n, r, i) {
            const s = i ? "class" : "style";
            _m(e, n, t.inputs[s], s, r)
        }
        function P(e, t, n, r) {
            const i = D()
              , o = Y()
              , s = 22 + e
              , a = i[$]
              , u = i[s] = bl(a, t, function Rb() {
                return O.lFrame.currentNamespace
            }())
              , l = o.firstCreatePass ? function MI(e, t, n, r, i, o, s) {
                const a = t.consts
                  , l = oi(t, e, 2, i, Zn(a, o));
                return sc(t, n, l, Zn(a, s)),
                null !== l.attrs && Xs(l, l.attrs, !1),
                null !== l.mergedAttrs && Xs(l, l.mergedAttrs, !0),
                null !== t.queries && t.queries.elementStart(t, l),
                l
            }(s, o, i, 0, t, n, r) : o.data[s];
            ln(l, !0);
            const c = l.mergedAttrs;
            null !== c && Ss(a, u, c);
            const d = l.classes;
            null !== d && Tl(a, u, d);
            const f = l.styles;
            return null !== f && pg(a, u, f),
            64 != (64 & l.flags) && $s(o, i, u, l),
            0 === function gb() {
                return O.lFrame.elementDepthCount
            }() && Ze(u, i),
            function mb() {
                O.lFrame.elementDepthCount++
            }(),
            vs(l) && (ic(o, i, l),
            function nm(e, t, n) {
                if (Ru(t)) {
                    const i = t.directiveEnd;
                    for (let o = t.directiveStart; o < i; o++) {
                        const s = e.data[o];
                        s.contentQueries && s.contentQueries(1, n[o], o)
                    }
                }
            }(o, l, i)),
            null !== r && oc(i, l),
            P
        }
        function F() {
            let e = Oe();
            Hu() ? function Uu() {
                O.lFrame.isParent = !1
            }() : (e = e.parent,
            ln(e, !1));
            const t = e;
            !function vb() {
                O.lFrame.elementDepthCount--
            }();
            const n = Y();
            return n.firstCreatePass && (ws(n, e),
            Ru(e) && n.queries.elementEnd(e)),
            null != t.classesWithoutHost && function kb(e) {
                return 0 != (16 & e.flags)
            }(t) && mc(n, t, D(), t.classesWithoutHost, !0),
            null != t.stylesWithoutHost && function Lb(e) {
                return 0 != (32 & e.flags)
            }(t) && mc(n, t, D(), t.stylesWithoutHost, !1),
            F
        }
        function Gt(e, t, n, r) {
            return P(e, t, n, r),
            F(),
            Gt
        }
        function gn() {
            return D()
        }
        function mo(e) {
            return !!e && "function" == typeof e.then
        }
        const _c = function Um(e) {
            return !!e && "function" == typeof e.subscribe
        };
        function ie(e, t, n, r) {
            const i = D()
              , o = Y()
              , s = Oe();
            return function Gm(e, t, n, r, i, o, s, a) {
                const u = vs(r)
                  , c = e.firstCreatePass && mm(e)
                  , d = t[8]
                  , f = gm(t);
                let h = !0;
                if (3 & r.type || a) {
                    const v = Tt(r, t)
                      , m = a ? a(v) : v
                      , C = f.length
                      , y = a ? E => a(Ae(E[r.index])) : r.index;
                    if (Ce(n)) {
                        let E = null;
                        if (!a && u && (E = function AI(e, t, n, r) {
                            const i = e.cleanup;
                            if (null != i)
                                for (let o = 0; o < i.length - 1; o += 2) {
                                    const s = i[o];
                                    if (s === n && i[o + 1] === r) {
                                        const a = t[7]
                                          , u = i[o + 2];
                                        return a.length > u ? a[u] : null
                                    }
                                    "string" == typeof s && (o += 2)
                                }
                            return null
                        }(e, t, i, r.index)),
                        null !== E)
                            (E.__ngLastListenerFn__ || E).__ngNextListenerFn__ = o,
                            E.__ngLastListenerFn__ = o,
                            h = !1;
                        else {
                            o = Dc(r, t, d, o, !1);
                            const j = n.listen(m, i, o);
                            f.push(o, j),
                            c && c.push(i, y, C, C + 1)
                        }
                    } else
                        o = Dc(r, t, d, o, !0),
                        m.addEventListener(i, o, s),
                        f.push(o),
                        c && c.push(i, y, C, s)
                } else
                    o = Dc(r, t, d, o, !1);
                const p = r.outputs;
                let g;
                if (h && null !== p && (g = p[i])) {
                    const v = g.length;
                    if (v)
                        for (let m = 0; m < v; m += 2) {
                            const le = t[g[m]][g[m + 1]].subscribe(o)
                              , Wn = f.length;
                            f.push(o, le),
                            c && c.push(i, r.index, Wn, -(Wn + 1))
                        }
                }
            }(o, i, i[$], s, e, t, !!n, r),
            ie
        }
        function qm(e, t, n, r) {
            try {
                return !1 !== n(r)
            } catch (i) {
                return ym(e, i),
                !1
            }
        }
        function Dc(e, t, n, r, i) {
            return function o(s) {
                if (s === Function)
                    return r;
                lc(2 & e.flags ? vt(e.index, t) : t);
                let u = qm(t, 0, r, s)
                  , l = o.__ngNextListenerFn__;
                for (; l; )
                    u = qm(t, 0, l, s) && u,
                    l = l.__ngNextListenerFn__;
                return i && !1 === u && (s.preventDefault(),
                s.returnValue = !1),
                u
            }
        }
        function pe(e=1) {
            return function Sb(e) {
                return (O.lFrame.contextLView = function Mb(e, t) {
                    for (; e > 0; )
                        t = t[15],
                        e--;
                    return t
                }(e, O.lFrame.contextLView))[8]
            }(e)
        }
        function Er(e, t, n) {
            return Cc(e, "", t, "", n),
            Er
        }
        function Cc(e, t, n, r, i) {
            const o = D()
              , s = li(o, t, n, r);
            return s !== L && Ct(Y(), we(), o, e, s, o[$], i, !1),
            Cc
        }
        function ev(e, t, n, r, i) {
            const o = e[n + 1]
              , s = null === t;
            let a = r ? Ut(o) : Pn(o)
              , u = !1;
            for (; 0 !== a && (!1 === u || s); ) {
                const c = e[a + 1];
                PI(e[a], t) && (u = !0,
                e[a + 1] = r ? Zl(c) : Wl(c)),
                a = r ? Ut(c) : Pn(c)
            }
            u && (e[n + 1] = r ? Wl(o) : Zl(o))
        }
        function PI(e, t) {
            return null === e || null == t || (Array.isArray(e) ? e[1] : e) === t || !(!Array.isArray(e) || "string" != typeof t) && Qr(e, t) >= 0
        }
        const Le = {
            textEnd: 0,
            key: 0,
            keyEnd: 0,
            value: 0,
            valueEnd: 0
        };
        function tv(e) {
            return e.substring(Le.key, Le.keyEnd)
        }
        function nv(e, t) {
            const n = Le.textEnd;
            return n === t ? -1 : (t = Le.keyEnd = function VI(e, t, n) {
                for (; t < n && e.charCodeAt(t) > 32; )
                    t++;
                return t
            }(e, Le.key = t, n),
            vi(e, t, n))
        }
        function vi(e, t, n) {
            for (; t < n && e.charCodeAt(t) <= 32; )
                t++;
            return t
        }
        function ta(e, t) {
            return function qt(e, t, n, r) {
                const i = D()
                  , o = Y()
                  , s = xn(2);
                o.firstUpdatePass && cv(o, e, s, r),
                t !== L && Je(i, s, t) && fv(o, o.data[nt()], i, i[$], e, i[s + 1] = function ZI(e, t) {
                    return null == e || ("string" == typeof t ? e += t : "object" == typeof e && (e = se(Qn(e)))),
                    e
                }(t, n), r, s)
            }(e, t, null, !0),
            ta
        }
        function uv(e) {
            !function Wt(e, t, n, r) {
                const i = Y()
                  , o = xn(2);
                i.firstUpdatePass && cv(i, null, o, r);
                const s = D();
                if (n !== L && Je(s, o, n)) {
                    const a = i.data[nt()];
                    if (pv(a, r) && !lv(i, o)) {
                        let u = r ? a.classesWithoutHost : a.stylesWithoutHost;
                        null !== u && (n = wu(u, n || "")),
                        mc(i, a, s, n, r)
                    } else
                        !function zI(e, t, n, r, i, o, s, a) {
                            i === L && (i = Q);
                            let u = 0
                              , l = 0
                              , c = 0 < i.length ? i[0] : null
                              , d = 0 < o.length ? o[0] : null;
                            for (; null !== c || null !== d; ) {
                                const f = u < i.length ? i[u + 1] : void 0
                                  , h = l < o.length ? o[l + 1] : void 0;
                                let g, p = null;
                                c === d ? (u += 2,
                                l += 2,
                                f !== h && (p = d,
                                g = h)) : null === d || null !== c && c < d ? (u += 2,
                                p = c) : (l += 2,
                                p = d,
                                g = h),
                                null !== p && fv(e, t, n, r, p, g, s, a),
                                c = u < i.length ? i[u] : null,
                                d = l < o.length ? o[l] : null
                            }
                        }(i, a, s, s[$], s[o + 1], s[o + 1] = function WI(e, t, n) {
                            if (null == n || "" === n)
                                return Q;
                            const r = []
                              , i = Qn(n);
                            if (Array.isArray(i))
                                for (let o = 0; o < i.length; o++)
                                    e(r, i[o], !0);
                            else if ("object" == typeof i)
                                for (const o in i)
                                    i.hasOwnProperty(o) && e(r, o, i[o]);
                            else
                                "string" == typeof i && t(r, i);
                            return r
                        }(e, t, n), r, o)
                }
            }(_t, vn, e, !0)
        }
        function vn(e, t) {
            for (let n = function kI(e) {
                return function iv(e) {
                    Le.key = 0,
                    Le.keyEnd = 0,
                    Le.value = 0,
                    Le.valueEnd = 0,
                    Le.textEnd = e.length
                }(e),
                nv(e, vi(e, 0, Le.textEnd))
            }(t); n >= 0; n = nv(t, n))
                _t(e, tv(t), !0)
        }
        function lv(e, t) {
            return t >= e.expandoStartIndex
        }
        function cv(e, t, n, r) {
            const i = e.data;
            if (null === i[n + 1]) {
                const o = i[nt()]
                  , s = lv(e, n);
                pv(o, r) && null === t && !s && (t = !1),
                t = function UI(e, t, n, r) {
                    const i = function Gu(e) {
                        const t = O.lFrame.currentDirectiveIndex;
                        return -1 === t ? null : e[t]
                    }(e);
                    let o = r ? t.residualClasses : t.residualStyles;
                    if (null === i)
                        0 === (r ? t.classBindings : t.styleBindings) && (n = vo(n = wc(null, e, t, n, r), t.attrs, r),
                        o = null);
                    else {
                        const s = t.directiveStylingLast;
                        if (-1 === s || e[s] !== i)
                            if (n = wc(i, e, t, n, r),
                            null === o) {
                                let u = function $I(e, t, n) {
                                    const r = n ? t.classBindings : t.styleBindings;
                                    if (0 !== Pn(r))
                                        return e[Ut(r)]
                                }(e, t, r);
                                void 0 !== u && Array.isArray(u) && (u = wc(null, e, t, u[1], r),
                                u = vo(u, t.attrs, r),
                                function GI(e, t, n, r) {
                                    e[Ut(n ? t.classBindings : t.styleBindings)] = r
                                }(e, t, r, u))
                            } else
                                o = function qI(e, t, n) {
                                    let r;
                                    const i = t.directiveEnd;
                                    for (let o = 1 + t.directiveStylingLast; o < i; o++)
                                        r = vo(r, e[o].hostAttrs, n);
                                    return vo(r, t.attrs, n)
                                }(e, t, r)
                    }
                    return void 0 !== o && (r ? t.residualClasses = o : t.residualStyles = o),
                    n
                }(i, o, t, r),
                function FI(e, t, n, r, i, o) {
                    let s = o ? t.classBindings : t.styleBindings
                      , a = Ut(s)
                      , u = Pn(s);
                    e[r] = n;
                    let c, l = !1;
                    if (Array.isArray(n)) {
                        const d = n;
                        c = d[1],
                        (null === c || Qr(d, c) > 0) && (l = !0)
                    } else
                        c = n;
                    if (i)
                        if (0 !== u) {
                            const f = Ut(e[a + 1]);
                            e[r + 1] = zs(f, a),
                            0 !== f && (e[f + 1] = zl(e[f + 1], r)),
                            e[a + 1] = function _M(e, t) {
                                return 131071 & e | t << 17
                            }(e[a + 1], r)
                        } else
                            e[r + 1] = zs(a, 0),
                            0 !== a && (e[a + 1] = zl(e[a + 1], r)),
                            a = r;
                    else
                        e[r + 1] = zs(u, 0),
                        0 === a ? a = r : e[u + 1] = zl(e[u + 1], r),
                        u = r;
                    l && (e[r + 1] = Wl(e[r + 1])),
                    ev(e, c, r, !0),
                    ev(e, c, r, !1),
                    function NI(e, t, n, r, i) {
                        const o = i ? e.residualClasses : e.residualStyles;
                        null != o && "string" == typeof t && Qr(o, t) >= 0 && (n[r + 1] = Zl(n[r + 1]))
                    }(t, c, e, r, o),
                    s = zs(a, u),
                    o ? t.classBindings = s : t.styleBindings = s
                }(i, o, t, n, s, r)
            }
        }
        function wc(e, t, n, r, i) {
            let o = null;
            const s = n.directiveEnd;
            let a = n.directiveStylingLast;
            for (-1 === a ? a = n.directiveStart : a++; a < s && (o = t[a],
            r = vo(r, o.hostAttrs, i),
            o !== e); )
                a++;
            return null !== e && (n.directiveStylingLast = a),
            r
        }
        function vo(e, t, n) {
            const r = n ? 1 : 2;
            let i = -1;
            if (null !== t)
                for (let o = 0; o < t.length; o++) {
                    const s = t[o];
                    "number" == typeof s ? i = s : i === r && (Array.isArray(e) || (e = void 0 === e ? [] : ["", e]),
                    _t(e, s, !!n || t[++o]))
                }
            return void 0 === e ? null : e
        }
        function fv(e, t, n, r, i, o, s, a) {
            if (!(3 & t.type))
                return;
            const u = e.data
              , l = u[a + 1];
            na(function Wg(e) {
                return 1 == (1 & e)
            }(l) ? hv(u, t, n, i, Pn(l), s) : void 0) || (na(o) || function qg(e) {
                return 2 == (2 & e)
            }(l) && (o = hv(u, null, n, i, a, s)),
            function xS(e, t, n, r, i) {
                const o = Ce(e);
                if (t)
                    i ? o ? e.addClass(n, r) : n.classList.add(r) : o ? e.removeClass(n, r) : n.classList.remove(r);
                else {
                    let s = -1 === r.indexOf("-") ? void 0 : Dt.DashCase;
                    if (null == i)
                        o ? e.removeStyle(n, r, s) : n.style.removeProperty(r);
                    else {
                        const a = "string" == typeof i && i.endsWith("!important");
                        a && (i = i.slice(0, -10),
                        s |= Dt.Important),
                        o ? e.setStyle(n, r, i, s) : n.style.setProperty(r, i, a ? "important" : "")
                    }
                }
            }(r, s, ys(nt(), n), i, o))
        }
        function hv(e, t, n, r, i, o) {
            const s = null === t;
            let a;
            for (; i > 0; ) {
                const u = e[i]
                  , l = Array.isArray(u)
                  , c = l ? u[1] : u
                  , d = null === c;
                let f = n[i + 1];
                f === L && (f = d ? Q : void 0);
                let h = d ? tl(f, r) : c === r ? f : void 0;
                if (l && !na(h) && (h = tl(u, r)),
                na(h) && (a = h,
                s))
                    return a;
                const p = e[i + 1];
                i = s ? Ut(p) : Pn(p)
            }
            if (null !== t) {
                let u = o ? t.residualClasses : t.residualStyles;
                null != u && (a = tl(u, r))
            }
            return a
        }
        function na(e) {
            return void 0 !== e
        }
        function pv(e, t) {
            return 0 != (e.flags & (t ? 16 : 32))
        }
        function _e(e, t="") {
            const n = D()
              , r = Y()
              , i = e + 22
              , o = r.firstCreatePass ? oi(r, i, 1, t, null) : r.data[i]
              , s = n[i] = function wl(e, t) {
                return Ce(e) ? e.createText(t) : e.createTextNode(t)
            }(n[$], t);
            $s(r, n, s, o),
            ln(o, !1)
        }
        function yn(e) {
            return yo("", e, ""),
            yn
        }
        function yo(e, t, n) {
            const r = D()
              , i = li(r, e, t, n);
            return i !== L && On(r, nt(), i),
            yo
        }
        const _i = "en-US";
        let kv = _i;
        function Sc(e, t, n, r, i) {
            if (e = x(e),
            Array.isArray(e))
                for (let o = 0; o < e.length; o++)
                    Sc(e[o], t, n, r, i);
            else {
                const o = Y()
                  , s = D();
                let a = Dr(e) ? e : x(e.provide)
                  , u = Fg(e);
                const l = Oe()
                  , c = 1048575 & l.providerIndexes
                  , d = l.directiveStart
                  , f = l.providerIndexes >> 20;
                if (Dr(e) || !e.multi) {
                    const h = new qi(u,i,_)
                      , p = Ic(a, t, i ? c : c + f, d);
                    -1 === p ? (Ts(zi(l, s), o, a),
                    Mc(o, e, t.length),
                    t.push(a),
                    l.directiveStart++,
                    l.directiveEnd++,
                    i && (l.providerIndexes += 1048576),
                    n.push(h),
                    s.push(h)) : (n[p] = h,
                    s[p] = h)
                } else {
                    const h = Ic(a, t, c + f, d)
                      , p = Ic(a, t, c, c + f)
                      , g = h >= 0 && n[h]
                      , v = p >= 0 && n[p];
                    if (i && !v || !i && !g) {
                        Ts(zi(l, s), o, a);
                        const m = function fT(e, t, n, r, i) {
                            const o = new qi(e,n,_);
                            return o.multi = [],
                            o.index = t,
                            o.componentProviders = 0,
                            ay(o, i, r && !n),
                            o
                        }(i ? dT : cT, n.length, i, r, u);
                        !i && v && (n[p].providerFactory = m),
                        Mc(o, e, t.length, 0),
                        t.push(a),
                        l.directiveStart++,
                        l.directiveEnd++,
                        i && (l.providerIndexes += 1048576),
                        n.push(m),
                        s.push(m)
                    } else
                        Mc(o, e, h > -1 ? h : p, ay(n[i ? p : h], u, !i && r));
                    !i && r && v && n[p].componentProviders++
                }
            }
        }
        function Mc(e, t, n, r) {
            const i = Dr(t)
              , o = function YS(e) {
                return !!e.useClass
            }(t);
            if (i || o) {
                const u = (o ? x(t.useClass) : t).prototype.ngOnDestroy;
                if (u) {
                    const l = e.destroyHooks || (e.destroyHooks = []);
                    if (!i && t.multi) {
                        const c = l.indexOf(n);
                        -1 === c ? l.push(n, [r, u]) : l[c + 1].push(r, u)
                    } else
                        l.push(n, u)
                }
            }
        }
        function ay(e, t, n) {
            return n && e.componentProviders++,
            e.multi.push(t) - 1
        }
        function Ic(e, t, n, r) {
            for (let i = n; i < r; i++)
                if (t[i] === e)
                    return i;
            return -1
        }
        function cT(e, t, n, r) {
            return Ac(this.multi, [])
        }
        function dT(e, t, n, r) {
            const i = this.multi;
            let o;
            if (this.providerFactory) {
                const s = this.providerFactory.componentProviders
                  , a = Zi(n, n[1], this.providerFactory.index, r);
                o = a.slice(0, s),
                Ac(i, o);
                for (let u = s; u < a.length; u++)
                    o.push(a[u])
            } else
                o = [],
                Ac(i, o);
            return o
        }
        function Ac(e, t) {
            for (let n = 0; n < e.length; n++)
                t.push((0,
                e[n])());
            return t
        }
        function me(e, t=[]) {
            return n => {
                n.providersResolver = (r, i) => function lT(e, t, n) {
                    const r = Y();
                    if (r.firstCreatePass) {
                        const i = Bt(e);
                        Sc(n, r.data, r.blueprint, i, !0),
                        Sc(t, r.data, r.blueprint, i, !1)
                    }
                }(r, i ? i(e) : e, t)
            }
        }
        class pT {
            resolveComponentFactory(t) {
                throw function hT(e) {
                    const t = Error(`No component factory found for ${se(e)}. Did you add it to @NgModule.entryComponents?`);
                    return t.ngComponent = e,
                    t
                }(t)
            }
        }
        let bo = ( () => {
            class e {
            }
            return e.NULL = new pT,
            e
        }
        )();
        class er {
        }
        class ly {
        }
        class cy {
        }
        function mT() {
            return Ci(Oe(), D())
        }
        function Ci(e, t) {
            return new wt(Tt(e, t))
        }
        let wt = ( () => {
            class e {
                constructor(n) {
                    this.nativeElement = n
                }
            }
            return e.__NG_ELEMENT_ID__ = mT,
            e
        }
        )();
        class dy {
        }
        let kn = ( () => {
            class e {
            }
            return e.__NG_ELEMENT_ID__ = () => function _T() {
                const e = D()
                  , n = vt(Oe().index, e);
                return function yT(e) {
                    return e[$]
                }(ct(n) ? n : e)
            }(),
            e
        }
        )()
          , DT = ( () => {
            class e {
            }
            return e.\u0275prov = I({
                token: e,
                providedIn: "root",
                factory: () => null
            }),
            e
        }
        )();
        class Eo {
            constructor(t) {
                this.full = t,
                this.major = t.split(".")[0],
                this.minor = t.split(".")[1],
                this.patch = t.split(".").slice(2).join(".")
            }
        }
        const CT = new Eo("14.0.3")
          , Tc = {};
        function aa(e, t, n, r, i=!1) {
            for (; null !== n; ) {
                const o = t[n.index];
                if (null !== o && r.push(Ae(o)),
                jt(o))
                    for (let a = 10; a < o.length; a++) {
                        const u = o[a]
                          , l = u[1].firstChild;
                        null !== l && aa(u[1], u, l, r)
                    }
                const s = n.type;
                if (8 & s)
                    aa(e, t, n.child, r);
                else if (32 & s) {
                    const a = _l(n, t);
                    let u;
                    for (; u = a(); )
                        r.push(u)
                } else if (16 & s) {
                    const a = dg(t, n);
                    if (Array.isArray(a))
                        r.push(...a);
                    else {
                        const u = lo(t[16]);
                        aa(u[1], u, a, r, !0)
                    }
                }
                n = i ? n.projectionNext : n.next
            }
            return r
        }
        class So {
            constructor(t, n) {
                this._lView = t,
                this._cdRefInjectingView = n,
                this._appRef = null,
                this._attachedToViewContainer = !1
            }
            get rootNodes() {
                const t = this._lView
                  , n = t[1];
                return aa(n, t, n.firstChild, [])
            }
            get context() {
                return this._lView[8]
            }
            set context(t) {
                this._lView[8] = t
            }
            get destroyed() {
                return 128 == (128 & this._lView[2])
            }
            destroy() {
                if (this._appRef)
                    this._appRef.detachView(this);
                else if (this._attachedToViewContainer) {
                    const t = this._lView[3];
                    if (jt(t)) {
                        const n = t[8]
                          , r = n ? n.indexOf(this) : -1;
                        r > -1 && (El(t, r),
                        Rs(n, r))
                    }
                    this._attachedToViewContainer = !1
                }
                tg(this._lView[1], this._lView)
            }
            onDestroy(t) {
                !function sm(e, t, n, r) {
                    const i = gm(t);
                    null === n ? i.push(r) : (i.push(n),
                    e.firstCreatePass && mm(e).push(r, i.length - 1))
                }(this._lView[1], this._lView, null, t)
            }
            markForCheck() {
                lc(this._cdRefInjectingView || this._lView)
            }
            detach() {
                this._lView[2] &= -65
            }
            reattach() {
                this._lView[2] |= 64
            }
            detectChanges() {
                !function dc(e, t, n) {
                    const r = t[10];
                    r.begin && r.begin();
                    try {
                        ai(e, t, e.template, n)
                    } catch (i) {
                        throw ym(t, i),
                        i
                    } finally {
                        r.end && r.end()
                    }
                }(this._lView[1], this._lView, this.context)
            }
            checkNoChanges() {}
            attachToViewContainerRef() {
                if (this._appRef)
                    throw new U(902,!1);
                this._attachedToViewContainer = !0
            }
            detachFromAppRef() {
                this._appRef = null,
                function DS(e, t) {
                    co(e, t, t[$], 2, null, null)
                }(this._lView[1], this._lView)
            }
            attachToAppRef(t) {
                if (this._attachedToViewContainer)
                    throw new U(902,!1);
                this._appRef = t
            }
        }
        class wT extends So {
            constructor(t) {
                super(t),
                this._view = t
            }
            detectChanges() {
                pm(this._view)
            }
            checkNoChanges() {}
            get context() {
                return null
            }
        }
        class xc extends bo {
            constructor(t) {
                super(),
                this.ngModule = t
            }
            resolveComponentFactory(t) {
                const n = ae(t);
                return new Rc(n,this.ngModule)
            }
        }
        function fy(e) {
            const t = [];
            for (let n in e)
                e.hasOwnProperty(n) && t.push({
                    propName: e[n],
                    templateName: n
                });
            return t
        }
        class ET {
            constructor(t, n) {
                this.injector = t,
                this.parentInjector = n
            }
            get(t, n, r) {
                const i = this.injector.get(t, Tc, r);
                return i !== Tc || n === Tc ? i : this.parentInjector.get(t, n, r)
            }
        }
        class Rc extends cy {
            constructor(t, n) {
                super(),
                this.componentDef = t,
                this.ngModule = n,
                this.componentType = t.type,
                this.selector = function BS(e) {
                    return e.map(jS).join(",")
                }(t.selectors),
                this.ngContentSelectors = t.ngContentSelectors ? t.ngContentSelectors : [],
                this.isBoundToModule = !!n
            }
            get inputs() {
                return fy(this.componentDef.inputs)
            }
            get outputs() {
                return fy(this.componentDef.outputs)
            }
            create(t, n, r, i) {
                let o = (i = i || this.ngModule)instanceof Cr ? i : null == i ? void 0 : i.injector;
                o && null !== this.componentDef.getStandaloneInjector && (o = this.componentDef.getStandaloneInjector(o) || o);
                const s = o ? new ET(t,o) : t
                  , a = s.get(dy, $h)
                  , u = s.get(DT, null)
                  , l = a.createRenderer(null, this.componentDef)
                  , c = this.componentDef.selectors[0][0] || "div"
                  , d = r ? function om(e, t, n) {
                    if (Ce(e))
                        return e.selectRootElement(t, n === sn.ShadowDom);
                    let r = "string" == typeof t ? e.querySelector(t) : t;
                    return r.textContent = "",
                    r
                }(l, r, this.componentDef.encapsulation) : bl(a.createRenderer(null, this.componentDef), c, function bT(e) {
                    const t = e.toLowerCase();
                    return "svg" === t ? "svg" : "math" === t ? "math" : null
                }(c))
                  , f = this.componentDef.onPush ? 288 : 272
                  , h = function xm(e, t) {
                    return {
                        components: [],
                        scheduler: e || dS,
                        clean: tI,
                        playerHandler: t || null,
                        flags: 0
                    }
                }()
                  , p = Js(0, null, null, 1, 0, null, null, null, null, null)
                  , g = fo(null, p, h, f, null, null, a, l, u, s, null);
                let v, m;
                Ds(g);
                try {
                    const C = function Am(e, t, n, r, i, o) {
                        const s = n[1];
                        n[22] = e;
                        const u = oi(s, 22, 2, "#host", null)
                          , l = u.mergedAttrs = t.hostAttrs;
                        null !== l && (Xs(u, l, !0),
                        null !== e && (Ss(i, e, l),
                        null !== u.classes && Tl(i, e, u.classes),
                        null !== u.styles && pg(i, e, u.styles)));
                        const c = r.createRenderer(e, t)
                          , d = fo(n, rm(t), null, t.onPush ? 32 : 16, n[22], u, r, c, o || null, null, null);
                        return s.firstCreatePass && (Ts(zi(u, n), s, t.type),
                        cm(s, u),
                        dm(u, n.length, 1)),
                        Qs(n, d),
                        n[22] = d
                    }(d, this.componentDef, g, a, l);
                    if (d)
                        if (r)
                            Ss(l, d, ["ng-version", CT.full]);
                        else {
                            const {attrs: y, classes: E} = function HS(e) {
                                const t = []
                                  , n = [];
                                let r = 1
                                  , i = 2;
                                for (; r < e.length; ) {
                                    let o = e[r];
                                    if ("string" == typeof o)
                                        2 === i ? "" !== o && t.push(o, e[++r]) : 8 === i && n.push(o);
                                    else {
                                        if (!Ht(i))
                                            break;
                                        i = o
                                    }
                                    r++
                                }
                                return {
                                    attrs: t,
                                    classes: n
                                }
                            }(this.componentDef.selectors[0]);
                            y && Ss(l, d, y),
                            E && E.length > 0 && Tl(l, d, E.join(" "))
                        }
                    if (m = Vu(p, 22),
                    void 0 !== n) {
                        const y = m.projection = [];
                        for (let E = 0; E < this.ngContentSelectors.length; E++) {
                            const j = n[E];
                            y.push(null != j ? Array.from(j) : null)
                        }
                    }
                    v = function Tm(e, t, n, r, i) {
                        const o = n[1]
                          , s = function jM(e, t, n) {
                            const r = Oe();
                            e.firstCreatePass && (n.providersResolver && n.providersResolver(n),
                            fm(e, r, t, si(e, t, 1, null), n));
                            const i = Zi(t, e, r.directiveStart, r);
                            Ze(i, t);
                            const o = Tt(r, t);
                            return o && Ze(o, t),
                            i
                        }(o, n, t);
                        if (r.components.push(s),
                        e[8] = s,
                        null !== i)
                            for (const u of i)
                                u(s, t);
                        if (t.contentQueries) {
                            const u = Oe();
                            t.contentQueries(1, s, u.directiveStart)
                        }
                        const a = Oe();
                        return !o.firstCreatePass || null === t.hostBindings && null === t.hostAttrs || (Yn(a.index),
                        um(n[1], a, 0, a.directiveStart, a.directiveEnd, t),
                        lm(t, s)),
                        s
                    }(C, this.componentDef, g, h, [fI]),
                    ho(p, g, null)
                } finally {
                    Cs()
                }
                return new MT(this.componentType,v,Ci(m, g),g,m)
            }
        }
        class MT extends class gT {
        }
        {
            constructor(t, n, r, i, o) {
                super(),
                this.location = r,
                this._rootLView = i,
                this._tNode = o,
                this.instance = n,
                this.hostView = this.changeDetectorRef = new wT(i),
                this.componentType = t
            }
            get injector() {
                return new Wr(this._tNode,this._rootLView)
            }
            destroy() {
                this.hostView.destroy()
            }
            onDestroy(t) {
                this.hostView.onDestroy(t)
            }
        }
        class hy extends er {
            constructor(t, n) {
                super(),
                this._parent = n,
                this._bootstrapComponents = [],
                this.injector = this,
                this.destroyCbs = [],
                this.componentFactoryResolver = new xc(this);
                const r = gt(t);
                this._bootstrapComponents = Nn(r.bootstrap),
                this._r3Injector = Pg(t, n, [{
                    provide: er,
                    useValue: this
                }, {
                    provide: bo,
                    useValue: this.componentFactoryResolver
                }], se(t), new Set(["environment"])),
                this._r3Injector.resolveInjectorInitializers(),
                this.instance = this.get(t)
            }
            get(t, n=Ye.THROW_IF_NOT_FOUND, r=A.Default) {
                return t === Ye || t === er || t === Fl ? this : this._r3Injector.get(t, n, r)
            }
            destroy() {
                const t = this._r3Injector;
                !t.destroyed && t.destroy(),
                this.destroyCbs.forEach(n => n()),
                this.destroyCbs = null
            }
            onDestroy(t) {
                this.destroyCbs.push(t)
            }
        }
        class Fc extends ly {
            constructor(t) {
                super(),
                this.moduleType = t
            }
            create(t) {
                return new hy(this.moduleType,t)
            }
        }
        class AT extends er {
            constructor(t, n, r) {
                super(),
                this.componentFactoryResolver = new xc(this),
                this.instance = null;
                const i = new Rg([...t, {
                    provide: er,
                    useValue: this
                }, {
                    provide: bo,
                    useValue: this.componentFactoryResolver
                }],n || Ol(),r,new Set(["environment"]));
                this.injector = i,
                i.resolveInjectorInitializers()
            }
            destroy() {
                this.injector.destroy()
            }
            onDestroy(t) {
                this.injector.onDestroy(t)
            }
        }
        function ua(e, t=null, n=null) {
            return new AT(e,t,n).injector
        }
        function py(e, t, n) {
            const r = function tt() {
                const e = O.lFrame;
                let t = e.bindingRootIndex;
                return -1 === t && (t = e.bindingRootIndex = e.tView.bindingStartIndex),
                t
            }() + e
              , i = D();
            return i[r] === L ? function hn(e, t, n) {
                return e[t] = n
            }(i, r, n ? t.call(n) : t()) : function go(e, t) {
                return e[t]
            }(i, r)
        }
        function Nc(e) {
            return t => {
                setTimeout(e, void 0, t)
            }
        }
        const Ee = class ZT extends en {
            constructor(t=!1) {
                super(),
                this.__isAsync = t
            }
            emit(t) {
                super.next(t)
            }
            subscribe(t, n, r) {
                var i, o, s;
                let a = t
                  , u = n || ( () => null)
                  , l = r;
                if (t && "object" == typeof t) {
                    const d = t;
                    a = null === (i = d.next) || void 0 === i ? void 0 : i.bind(d),
                    u = null === (o = d.error) || void 0 === o ? void 0 : o.bind(d),
                    l = null === (s = d.complete) || void 0 === s ? void 0 : s.bind(d)
                }
                this.__isAsync && (u = Nc(u),
                a && (a = Nc(a)),
                l && (l = Nc(l)));
                const c = super.subscribe({
                    next: a,
                    error: u,
                    complete: l
                });
                return t instanceof Et && t.add(c),
                c
            }
        }
        ;
        let Ln = ( () => {
            class e {
            }
            return e.__NG_ELEMENT_ID__ = XT,
            e
        }
        )();
        const JT = Ln
          , QT = class extends JT {
            constructor(t, n, r) {
                super(),
                this._declarationLView = t,
                this._declarationTContainer = n,
                this.elementRef = r
            }
            createEmbeddedView(t, n) {
                const r = this._declarationTContainer.tViews
                  , i = fo(this._declarationLView, r, t, 16, null, r.declTNode, null, null, null, null, n || null);
                i[17] = this._declarationLView[this._declarationTContainer.index];
                const s = this._declarationLView[19];
                return null !== s && (i[19] = s.createEmbeddedView(r)),
                ho(r, i, t),
                new So(i)
            }
        }
        ;
        function XT() {
            return function la(e, t) {
                return 4 & e.type ? new QT(t,e,Ci(e, t)) : null
            }(Oe(), D())
        }
        let zt = ( () => {
            class e {
            }
            return e.__NG_ELEMENT_ID__ = KT,
            e
        }
        )();
        function KT() {
            return function wy(e, t) {
                let n;
                const r = t[e.index];
                if (jt(r))
                    n = r;
                else {
                    let i;
                    if (8 & e.type)
                        i = Ae(r);
                    else {
                        const o = t[$];
                        i = o.createComment("");
                        const s = Tt(e, t);
                        _r(o, Us(o, s), i, function IS(e, t) {
                            return Ce(e) ? e.nextSibling(t) : t.nextSibling
                        }(o, s), !1)
                    }
                    t[e.index] = n = hm(r, t, i, e),
                    Qs(t, n)
                }
                return new Dy(n,e,t)
            }(Oe(), D())
        }
        const e1 = zt
          , Dy = class extends e1 {
            constructor(t, n, r) {
                super(),
                this._lContainer = t,
                this._hostTNode = n,
                this._hostLView = r
            }
            get element() {
                return Ci(this._hostTNode, this._hostLView)
            }
            get injector() {
                return new Wr(this._hostTNode,this._hostLView)
            }
            get parentInjector() {
                const t = As(this._hostTNode, this._hostLView);
                if (sp(t)) {
                    const n = qr(t, this._hostLView)
                      , r = Gr(t);
                    return new Wr(n[1].data[r + 8],n)
                }
                return new Wr(null,this._hostLView)
            }
            clear() {
                for (; this.length > 0; )
                    this.remove(this.length - 1)
            }
            get(t) {
                const n = Cy(this._lContainer);
                return null !== n && n[t] || null
            }
            get length() {
                return this._lContainer.length - 10
            }
            createEmbeddedView(t, n, r) {
                let i, o;
                "number" == typeof r ? i = r : null != r && (i = r.index,
                o = r.injector);
                const s = t.createEmbeddedView(n || {}, o);
                return this.insert(s, i),
                s
            }
            createComponent(t, n, r, i, o) {
                const s = t && !function Qi(e) {
                    return "function" == typeof e
                }(t);
                let a;
                if (s)
                    a = n;
                else {
                    const d = n || {};
                    a = d.index,
                    r = d.injector,
                    i = d.projectableNodes,
                    o = d.environmentInjector || d.ngModuleRef
                }
                const u = s ? t : new Rc(ae(t))
                  , l = r || this.parentInjector;
                if (!o && null == u.ngModule) {
                    const f = (s ? l : this.parentInjector).get(Cr, null);
                    f && (o = f)
                }
                const c = u.create(l, i, void 0, o);
                return this.insert(c.hostView, a),
                c
            }
            insert(t, n) {
                const r = t._lView
                  , i = r[1];
                if (function pb(e) {
                    return jt(e[3])
                }(r)) {
                    const c = this.indexOf(t);
                    if (-1 !== c)
                        this.detach(c);
                    else {
                        const d = r[3]
                          , f = new Dy(d,d[6],d[3]);
                        f.detach(f.indexOf(t))
                    }
                }
                const o = this._adjustIndex(n)
                  , s = this._lContainer;
                !function wS(e, t, n, r) {
                    const i = 10 + r
                      , o = n.length;
                    r > 0 && (n[i - 1][4] = t),
                    r < o - 10 ? (t[4] = n[i],
                    vp(n, 10 + r, t)) : (n.push(t),
                    t[4] = null),
                    t[3] = n;
                    const s = t[17];
                    null !== s && n !== s && function bS(e, t) {
                        const n = e[9];
                        t[16] !== t[3][3][16] && (e[2] = !0),
                        null === n ? e[9] = [t] : n.push(t)
                    }(s, t);
                    const a = t[19];
                    null !== a && a.insertView(e),
                    t[2] |= 64
                }(i, r, s, o);
                const a = Il(o, s)
                  , u = r[$]
                  , l = Us(u, s[7]);
                return null !== l && function _S(e, t, n, r, i, o) {
                    r[0] = i,
                    r[6] = t,
                    co(e, r, n, 1, i, o)
                }(i, s[6], u, r, l, a),
                t.attachToViewContainerRef(),
                vp(Oc(s), o, t),
                t
            }
            move(t, n) {
                return this.insert(t, n)
            }
            indexOf(t) {
                const n = Cy(this._lContainer);
                return null !== n ? n.indexOf(t) : -1
            }
            remove(t) {
                const n = this._adjustIndex(t, -1)
                  , r = El(this._lContainer, n);
                r && (Rs(Oc(this._lContainer), n),
                tg(r[1], r))
            }
            detach(t) {
                const n = this._adjustIndex(t, -1)
                  , r = El(this._lContainer, n);
                return r && null != Rs(Oc(this._lContainer), n) ? new So(r) : null
            }
            _adjustIndex(t, n=0) {
                return null == t ? this.length + n : t
            }
        }
        ;
        function Cy(e) {
            return e[8]
        }
        function Oc(e) {
            return e[8] || (e[8] = [])
        }
        function da(...e) {}
        const Zc = new N("Application Initializer");
        let fa = ( () => {
            class e {
                constructor(n) {
                    this.appInits = n,
                    this.resolve = da,
                    this.reject = da,
                    this.initialized = !1,
                    this.done = !1,
                    this.donePromise = new Promise( (r, i) => {
                        this.resolve = r,
                        this.reject = i
                    }
                    )
                }
                runInitializers() {
                    if (this.initialized)
                        return;
                    const n = []
                      , r = () => {
                        this.done = !0,
                        this.resolve()
                    }
                    ;
                    if (this.appInits)
                        for (let i = 0; i < this.appInits.length; i++) {
                            const o = this.appInits[i]();
                            if (mo(o))
                                n.push(o);
                            else if (_c(o)) {
                                const s = new Promise( (a, u) => {
                                    o.subscribe({
                                        complete: a,
                                        error: u
                                    })
                                }
                                );
                                n.push(s)
                            }
                        }
                    Promise.all(n).then( () => {
                        r()
                    }
                    ).catch(i => {
                        this.reject(i)
                    }
                    ),
                    0 === n.length && r(),
                    this.initialized = !0
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Zc, 8))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "root"
            }),
            e
        }
        )();
        const To = new N("AppId",{
            providedIn: "root",
            factory: function Wy() {
                return `${Yc()}${Yc()}${Yc()}`
            }
        });
        function Yc() {
            return String.fromCharCode(97 + Math.floor(25 * Math.random()))
        }
        const zy = new N("Platform Initializer")
          , Jc = new N("Platform ID",{
            providedIn: "platform",
            factory: () => "unknown"
        })
          , Zy = new N("appBootstrapListener");
        let x1 = ( () => {
            class e {
                log(n) {
                    console.log(n)
                }
                warn(n) {
                    console.warn(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "platform"
            }),
            e
        }
        )();
        const Vn = new N("LocaleId",{
            providedIn: "root",
            factory: () => function aE(e, t=A.Default) {
                return S(e, t)
            }(Vn, A.Optional | A.SkipSelf) || function R1() {
                return "undefined" != typeof $localize && $localize.locale || _i
            }()
        });
        class N1 {
            constructor(t, n) {
                this.ngModuleFactory = t,
                this.componentFactories = n
            }
        }
        let Qc = ( () => {
            class e {
                compileModuleSync(n) {
                    return new Fc(n)
                }
                compileModuleAsync(n) {
                    return Promise.resolve(this.compileModuleSync(n))
                }
                compileModuleAndAllComponentsSync(n) {
                    const r = this.compileModuleSync(n)
                      , o = Nn(gt(n).declarations).reduce( (s, a) => {
                        const u = ae(a);
                        return u && s.push(new Rc(u)),
                        s
                    }
                    , []);
                    return new N1(r,o)
                }
                compileModuleAndAllComponentsAsync(n) {
                    return Promise.resolve(this.compileModuleAndAllComponentsSync(n))
                }
                clearCache() {}
                clearCacheFor(n) {}
                getModuleId(n) {}
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "root"
            }),
            e
        }
        )();
        const O1 = ( () => Promise.resolve(0))();
        function Xc(e) {
            "undefined" == typeof Zone ? O1.then( () => {
                e && e.apply(null, null)
            }
            ) : Zone.current.scheduleMicroTask("scheduleMicrotask", e)
        }
        class xe {
            constructor({enableLongStackTrace: t=!1, shouldCoalesceEventChangeDetection: n=!1, shouldCoalesceRunChangeDetection: r=!1}) {
                if (this.hasPendingMacrotasks = !1,
                this.hasPendingMicrotasks = !1,
                this.isStable = !0,
                this.onUnstable = new Ee(!1),
                this.onMicrotaskEmpty = new Ee(!1),
                this.onStable = new Ee(!1),
                this.onError = new Ee(!1),
                "undefined" == typeof Zone)
                    throw new Error("In this configuration Angular requires Zone.js");
                Zone.assertZonePatched();
                const i = this;
                i._nesting = 0,
                i._outer = i._inner = Zone.current,
                Zone.TaskTrackingZoneSpec && (i._inner = i._inner.fork(new Zone.TaskTrackingZoneSpec)),
                t && Zone.longStackTraceZoneSpec && (i._inner = i._inner.fork(Zone.longStackTraceZoneSpec)),
                i.shouldCoalesceEventChangeDetection = !r && n,
                i.shouldCoalesceRunChangeDetection = r,
                i.lastRequestAnimationFrameId = -1,
                i.nativeRequestAnimationFrame = function k1() {
                    let e = re.requestAnimationFrame
                      , t = re.cancelAnimationFrame;
                    if ("undefined" != typeof Zone && e && t) {
                        const n = e[Zone.__symbol__("OriginalDelegate")];
                        n && (e = n);
                        const r = t[Zone.__symbol__("OriginalDelegate")];
                        r && (t = r)
                    }
                    return {
                        nativeRequestAnimationFrame: e,
                        nativeCancelAnimationFrame: t
                    }
                }().nativeRequestAnimationFrame,
                function j1(e) {
                    const t = () => {
                        !function V1(e) {
                            e.isCheckStableRunning || -1 !== e.lastRequestAnimationFrameId || (e.lastRequestAnimationFrameId = e.nativeRequestAnimationFrame.call(re, () => {
                                e.fakeTopEventTask || (e.fakeTopEventTask = Zone.root.scheduleEventTask("fakeTopEventTask", () => {
                                    e.lastRequestAnimationFrameId = -1,
                                    ed(e),
                                    e.isCheckStableRunning = !0,
                                    Kc(e),
                                    e.isCheckStableRunning = !1
                                }
                                , void 0, () => {}
                                , () => {}
                                )),
                                e.fakeTopEventTask.invoke()
                            }
                            ),
                            ed(e))
                        }(e)
                    }
                    ;
                    e._inner = e._inner.fork({
                        name: "angular",
                        properties: {
                            isAngularZone: !0
                        },
                        onInvokeTask: (n, r, i, o, s, a) => {
                            try {
                                return Yy(e),
                                n.invokeTask(i, o, s, a)
                            } finally {
                                (e.shouldCoalesceEventChangeDetection && "eventTask" === o.type || e.shouldCoalesceRunChangeDetection) && t(),
                                Jy(e)
                            }
                        }
                        ,
                        onInvoke: (n, r, i, o, s, a, u) => {
                            try {
                                return Yy(e),
                                n.invoke(i, o, s, a, u)
                            } finally {
                                e.shouldCoalesceRunChangeDetection && t(),
                                Jy(e)
                            }
                        }
                        ,
                        onHasTask: (n, r, i, o) => {
                            n.hasTask(i, o),
                            r === i && ("microTask" == o.change ? (e._hasPendingMicrotasks = o.microTask,
                            ed(e),
                            Kc(e)) : "macroTask" == o.change && (e.hasPendingMacrotasks = o.macroTask))
                        }
                        ,
                        onHandleError: (n, r, i, o) => (n.handleError(i, o),
                        e.runOutsideAngular( () => e.onError.emit(o)),
                        !1)
                    })
                }(i)
            }
            static isInAngularZone() {
                return "undefined" != typeof Zone && !0 === Zone.current.get("isAngularZone")
            }
            static assertInAngularZone() {
                if (!xe.isInAngularZone())
                    throw new Error("Expected to be in Angular Zone, but it is not!")
            }
            static assertNotInAngularZone() {
                if (xe.isInAngularZone())
                    throw new Error("Expected to not be in Angular Zone, but it is!")
            }
            run(t, n, r) {
                return this._inner.run(t, n, r)
            }
            runTask(t, n, r, i) {
                const o = this._inner
                  , s = o.scheduleEventTask("NgZoneEvent: " + i, t, L1, da, da);
                try {
                    return o.runTask(s, n, r)
                } finally {
                    o.cancelTask(s)
                }
            }
            runGuarded(t, n, r) {
                return this._inner.runGuarded(t, n, r)
            }
            runOutsideAngular(t) {
                return this._outer.run(t)
            }
        }
        const L1 = {};
        function Kc(e) {
            if (0 == e._nesting && !e.hasPendingMicrotasks && !e.isStable)
                try {
                    e._nesting++,
                    e.onMicrotaskEmpty.emit(null)
                } finally {
                    if (e._nesting--,
                    !e.hasPendingMicrotasks)
                        try {
                            e.runOutsideAngular( () => e.onStable.emit(null))
                        } finally {
                            e.isStable = !0
                        }
                }
        }
        function ed(e) {
            e.hasPendingMicrotasks = !!(e._hasPendingMicrotasks || (e.shouldCoalesceEventChangeDetection || e.shouldCoalesceRunChangeDetection) && -1 !== e.lastRequestAnimationFrameId)
        }
        function Yy(e) {
            e._nesting++,
            e.isStable && (e.isStable = !1,
            e.onUnstable.emit(null))
        }
        function Jy(e) {
            e._nesting--,
            Kc(e)
        }
        class B1 {
            constructor() {
                this.hasPendingMicrotasks = !1,
                this.hasPendingMacrotasks = !1,
                this.isStable = !0,
                this.onUnstable = new Ee,
                this.onMicrotaskEmpty = new Ee,
                this.onStable = new Ee,
                this.onError = new Ee
            }
            run(t, n, r) {
                return t.apply(n, r)
            }
            runGuarded(t, n, r) {
                return t.apply(n, r)
            }
            runOutsideAngular(t) {
                return t()
            }
            runTask(t, n, r, i) {
                return t.apply(n, r)
            }
        }
        const Qy = new N("")
          , ha = new N("");
        let xo, td = ( () => {
            class e {
                constructor(n, r, i) {
                    this._ngZone = n,
                    this.registry = r,
                    this._pendingCount = 0,
                    this._isZoneStable = !0,
                    this._didWork = !1,
                    this._callbacks = [],
                    this.taskTrackingZone = null,
                    xo || (function H1(e) {
                        xo = e
                    }(i),
                    i.addToWindow(r)),
                    this._watchAngularEvents(),
                    n.run( () => {
                        this.taskTrackingZone = "undefined" == typeof Zone ? null : Zone.current.get("TaskTrackingZone")
                    }
                    )
                }
                _watchAngularEvents() {
                    this._ngZone.onUnstable.subscribe({
                        next: () => {
                            this._didWork = !0,
                            this._isZoneStable = !1
                        }
                    }),
                    this._ngZone.runOutsideAngular( () => {
                        this._ngZone.onStable.subscribe({
                            next: () => {
                                xe.assertNotInAngularZone(),
                                Xc( () => {
                                    this._isZoneStable = !0,
                                    this._runCallbacksIfReady()
                                }
                                )
                            }
                        })
                    }
                    )
                }
                increasePendingRequestCount() {
                    return this._pendingCount += 1,
                    this._didWork = !0,
                    this._pendingCount
                }
                decreasePendingRequestCount() {
                    if (this._pendingCount -= 1,
                    this._pendingCount < 0)
                        throw new Error("pending async requests below zero");
                    return this._runCallbacksIfReady(),
                    this._pendingCount
                }
                isStable() {
                    return this._isZoneStable && 0 === this._pendingCount && !this._ngZone.hasPendingMacrotasks
                }
                _runCallbacksIfReady() {
                    if (this.isStable())
                        Xc( () => {
                            for (; 0 !== this._callbacks.length; ) {
                                let n = this._callbacks.pop();
                                clearTimeout(n.timeoutId),
                                n.doneCb(this._didWork)
                            }
                            this._didWork = !1
                        }
                        );
                    else {
                        let n = this.getPendingTasks();
                        this._callbacks = this._callbacks.filter(r => !r.updateCb || !r.updateCb(n) || (clearTimeout(r.timeoutId),
                        !1)),
                        this._didWork = !0
                    }
                }
                getPendingTasks() {
                    return this.taskTrackingZone ? this.taskTrackingZone.macroTasks.map(n => ({
                        source: n.source,
                        creationLocation: n.creationLocation,
                        data: n.data
                    })) : []
                }
                addCallback(n, r, i) {
                    let o = -1;
                    r && r > 0 && (o = setTimeout( () => {
                        this._callbacks = this._callbacks.filter(s => s.timeoutId !== o),
                        n(this._didWork, this.getPendingTasks())
                    }
                    , r)),
                    this._callbacks.push({
                        doneCb: n,
                        timeoutId: o,
                        updateCb: i
                    })
                }
                whenStable(n, r, i) {
                    if (i && !this.taskTrackingZone)
                        throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');
                    this.addCallback(n, r, i),
                    this._runCallbacksIfReady()
                }
                getPendingRequestCount() {
                    return this._pendingCount
                }
                registerApplication(n) {
                    this.registry.registerApplication(n, this)
                }
                unregisterApplication(n) {
                    this.registry.unregisterApplication(n)
                }
                findProviders(n, r, i) {
                    return []
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(xe),S(nd),S(ha))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )(), nd = ( () => {
            class e {
                constructor() {
                    this._applications = new Map
                }
                registerApplication(n, r) {
                    this._applications.set(n, r)
                }
                unregisterApplication(n) {
                    this._applications.delete(n)
                }
                unregisterAllApplications() {
                    this._applications.clear()
                }
                getTestability(n) {
                    return this._applications.get(n) || null
                }
                getAllTestabilities() {
                    return Array.from(this._applications.values())
                }
                getAllRootElements() {
                    return Array.from(this._applications.keys())
                }
                findTestabilityInTree(n, r=!0) {
                    var i;
                    return null !== (i = null == xo ? void 0 : xo.findTestabilityInTree(this, n, r)) && void 0 !== i ? i : null
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "platform"
            }),
            e
        }
        )(), _n = null;
        const Xy = new N("AllowMultipleToken")
          , Ky = new N("PlatformOnDestroy");
        class e_ {
            constructor(t, n) {
                this.name = t,
                this.token = n
            }
        }
        function n_(e, t, n=[]) {
            const r = `Platform: ${t}`
              , i = new N(r);
            return (o=[]) => {
                let s = rd();
                if (!s || s.injector.get(Xy, !1)) {
                    const a = [...n, ...o, {
                        provide: i,
                        useValue: !0
                    }];
                    e ? e(a) : function G1(e) {
                        if (_n && !_n.get(Xy, !1))
                            throw new U(400,!1);
                        _n = e;
                        const t = e.get(i_);
                        (function t_(e) {
                            const t = e.get(zy, null);
                            t && t.forEach(n => n())
                        }
                        )(e)
                    }(function r_(e=[], t) {
                        return Ye.create({
                            name: t,
                            providers: [{
                                provide: Nl,
                                useValue: "platform"
                            }, {
                                provide: Ky,
                                useValue: () => _n = null
                            }, ...e]
                        })
                    }(a, r))
                }
                return function W1(e) {
                    const t = rd();
                    if (!t)
                        throw new U(401,!1);
                    return t
                }()
            }
        }
        function rd() {
            var e;
            return null !== (e = null == _n ? void 0 : _n.get(i_)) && void 0 !== e ? e : null
        }
        let i_ = ( () => {
            class e {
                constructor(n) {
                    this._injector = n,
                    this._modules = [],
                    this._destroyListeners = [],
                    this._destroyed = !1
                }
                bootstrapModuleFactory(n, r) {
                    const i = function z1(e, t) {
                        let n;
                        return n = "noop" === e ? new B1 : ("zone.js" === e ? void 0 : e) || new xe(t),
                        n
                    }(null == r ? void 0 : r.ngZone, function o_(e) {
                        return {
                            enableLongStackTrace: !1,
                            shouldCoalesceEventChangeDetection: !(!e || !e.ngZoneEventCoalescing) || !1,
                            shouldCoalesceRunChangeDetection: !(!e || !e.ngZoneRunCoalescing) || !1
                        }
                    }(r))
                      , o = [{
                        provide: xe,
                        useValue: i
                    }];
                    return i.run( () => {
                        const s = Ye.create({
                            providers: o,
                            parent: this.injector,
                            name: n.moduleType.name
                        })
                          , a = n.create(s)
                          , u = a.injector.get(ei, null);
                        if (!u)
                            throw new U(402,!1);
                        return i.runOutsideAngular( () => {
                            const l = i.onError.subscribe({
                                next: c => {
                                    u.handleError(c)
                                }
                            });
                            a.onDestroy( () => {
                                ga(this._modules, a),
                                l.unsubscribe()
                            }
                            )
                        }
                        ),
                        function s_(e, t, n) {
                            try {
                                const r = n();
                                return mo(r) ? r.catch(i => {
                                    throw t.runOutsideAngular( () => e.handleError(i)),
                                    i
                                }
                                ) : r
                            } catch (r) {
                                throw t.runOutsideAngular( () => e.handleError(r)),
                                r
                            }
                        }(u, i, () => {
                            const l = a.injector.get(fa);
                            return l.runInitializers(),
                            l.donePromise.then( () => (function Lv(e) {
                                ht(e, "Expected localeId to be defined"),
                                "string" == typeof e && (kv = e.toLowerCase().replace(/_/g, "-"))
                            }(a.injector.get(Vn, _i) || _i),
                            this._moduleDoBootstrap(a),
                            a))
                        }
                        )
                    }
                    )
                }
                bootstrapModule(n, r=[]) {
                    const i = a_({}, r);
                    return function U1(e, t, n) {
                        const r = new Fc(n);
                        return Promise.resolve(r)
                    }(0, 0, n).then(o => this.bootstrapModuleFactory(o, i))
                }
                _moduleDoBootstrap(n) {
                    const r = n.injector.get(pa);
                    if (n._bootstrapComponents.length > 0)
                        n._bootstrapComponents.forEach(i => r.bootstrap(i));
                    else {
                        if (!n.instance.ngDoBootstrap)
                            throw new U(403,!1);
                        n.instance.ngDoBootstrap(r)
                    }
                    this._modules.push(n)
                }
                onDestroy(n) {
                    this._destroyListeners.push(n)
                }
                get injector() {
                    return this._injector
                }
                destroy() {
                    if (this._destroyed)
                        throw new U(404,!1);
                    this._modules.slice().forEach(r => r.destroy()),
                    this._destroyListeners.forEach(r => r());
                    const n = this._injector.get(Ky, null);
                    null == n || n(),
                    this._destroyed = !0
                }
                get destroyed() {
                    return this._destroyed
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Ye))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "platform"
            }),
            e
        }
        )();
        function a_(e, t) {
            return Array.isArray(t) ? t.reduce(a_, e) : Object.assign(Object.assign({}, e), t)
        }
        let pa = ( () => {
            class e {
                constructor(n, r, i, o) {
                    this._zone = n,
                    this._injector = r,
                    this._exceptionHandler = i,
                    this._initStatus = o,
                    this._bootstrapListeners = [],
                    this._views = [],
                    this._runningTick = !1,
                    this._stable = !0,
                    this._destroyed = !1,
                    this._destroyListeners = [],
                    this.componentTypes = [],
                    this.components = [],
                    this._onMicrotaskEmptySubscription = this._zone.onMicrotaskEmpty.subscribe({
                        next: () => {
                            this._zone.run( () => {
                                this.tick()
                            }
                            )
                        }
                    });
                    const s = new Me(u => {
                        this._stable = this._zone.isStable && !this._zone.hasPendingMacrotasks && !this._zone.hasPendingMicrotasks,
                        this._zone.runOutsideAngular( () => {
                            u.next(this._stable),
                            u.complete()
                        }
                        )
                    }
                    )
                      , a = new Me(u => {
                        let l;
                        this._zone.runOutsideAngular( () => {
                            l = this._zone.onStable.subscribe( () => {
                                xe.assertNotInAngularZone(),
                                Xc( () => {
                                    !this._stable && !this._zone.hasPendingMacrotasks && !this._zone.hasPendingMicrotasks && (this._stable = !0,
                                    u.next(!0))
                                }
                                )
                            }
                            )
                        }
                        );
                        const c = this._zone.onUnstable.subscribe( () => {
                            xe.assertInAngularZone(),
                            this._stable && (this._stable = !1,
                            this._zone.runOutsideAngular( () => {
                                u.next(!1)
                            }
                            ))
                        }
                        );
                        return () => {
                            l.unsubscribe(),
                            c.unsubscribe()
                        }
                    }
                    );
                    this.isStable = function P0(...e) {
                        const t = Vi(e)
                          , n = function I0(e, t) {
                            return "number" == typeof _u(e) ? e.pop() : t
                        }(e, 1 / 0)
                          , r = e;
                        return r.length ? 1 === r.length ? rn(r[0]) : kr(n)(Pe(r, t)) : Mn
                    }(s, a.pipe(function O0(e={}) {
                        const {connector: t=( () => new en), resetOnError: n=!0, resetOnComplete: r=!0, resetOnRefCountZero: i=!0} = e;
                        return o => {
                            let s = null
                              , a = null
                              , u = null
                              , l = 0
                              , c = !1
                              , d = !1;
                            const f = () => {
                                null == a || a.unsubscribe(),
                                a = null
                            }
                              , h = () => {
                                f(),
                                s = u = null,
                                c = d = !1
                            }
                              , p = () => {
                                const g = s;
                                h(),
                                null == g || g.unsubscribe()
                            }
                            ;
                            return He( (g, v) => {
                                l++,
                                !d && !c && f();
                                const m = u = null != u ? u : t();
                                v.add( () => {
                                    l--,
                                    0 === l && !d && !c && (a = Du(p, i))
                                }
                                ),
                                m.subscribe(v),
                                s || (s = new as({
                                    next: C => m.next(C),
                                    error: C => {
                                        d = !0,
                                        f(),
                                        a = Du(h, n, C),
                                        m.error(C)
                                    }
                                    ,
                                    complete: () => {
                                        c = !0,
                                        f(),
                                        a = Du(h, r),
                                        m.complete()
                                    }
                                }),
                                Pe(g).subscribe(s))
                            }
                            )(o)
                        }
                    }()))
                }
                get destroyed() {
                    return this._destroyed
                }
                get injector() {
                    return this._injector
                }
                bootstrap(n, r) {
                    const i = n instanceof cy;
                    if (!this._initStatus.done)
                        throw !i && function bi(e) {
                            const t = ae(e) || Ke(e) || et(e);
                            return null !== t && t.standalone
                        }(n),
                        new U(405,false);
                    let o;
                    o = i ? n : this._injector.get(bo).resolveComponentFactory(n),
                    this.componentTypes.push(o.componentType);
                    const s = function $1(e) {
                        return e.isBoundToModule
                    }(o) ? void 0 : this._injector.get(er)
                      , u = o.create(Ye.NULL, [], r || o.selector, s)
                      , l = u.location.nativeElement
                      , c = u.injector.get(Qy, null);
                    return null == c || c.registerApplication(l),
                    u.onDestroy( () => {
                        this.detachView(u.hostView),
                        ga(this.components, u),
                        null == c || c.unregisterApplication(l)
                    }
                    ),
                    this._loadComponent(u),
                    u
                }
                tick() {
                    if (this._runningTick)
                        throw new U(101,!1);
                    try {
                        this._runningTick = !0;
                        for (let n of this._views)
                            n.detectChanges()
                    } catch (n) {
                        this._zone.runOutsideAngular( () => this._exceptionHandler.handleError(n))
                    } finally {
                        this._runningTick = !1
                    }
                }
                attachView(n) {
                    const r = n;
                    this._views.push(r),
                    r.attachToAppRef(this)
                }
                detachView(n) {
                    const r = n;
                    ga(this._views, r),
                    r.detachFromAppRef()
                }
                _loadComponent(n) {
                    this.attachView(n.hostView),
                    this.tick(),
                    this.components.push(n),
                    this._injector.get(Zy, []).concat(this._bootstrapListeners).forEach(i => i(n))
                }
                ngOnDestroy() {
                    if (!this._destroyed)
                        try {
                            this._destroyListeners.forEach(n => n()),
                            this._views.slice().forEach(n => n.destroy()),
                            this._onMicrotaskEmptySubscription.unsubscribe()
                        } finally {
                            this._destroyed = !0,
                            this._views = [],
                            this._bootstrapListeners = [],
                            this._destroyListeners = []
                        }
                }
                onDestroy(n) {
                    return this._destroyListeners.push(n),
                    () => ga(this._destroyListeners, n)
                }
                destroy() {
                    if (this._destroyed)
                        throw new U(406,!1);
                    const n = this._injector;
                    n.destroy && !n.destroyed && n.destroy()
                }
                get viewCount() {
                    return this._views.length
                }
                warnIfDestroyed() {}
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(xe),S(Ye),S(ei),S(fa))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "root"
            }),
            e
        }
        )();
        function ga(e, t) {
            const n = e.indexOf(t);
            n > -1 && e.splice(n, 1)
        }
        let l_ = !0
          , ma = ( () => {
            class e {
            }
            return e.__NG_ELEMENT_ID__ = J1,
            e
        }
        )();
        function J1(e) {
            return function Q1(e, t, n) {
                if (ms(e) && !n) {
                    const r = vt(e.index, t);
                    return new So(r,r)
                }
                return 47 & e.type ? new So(t[16],t) : null
            }(Oe(), D(), 16 == (16 & e))
        }
        class p_ {
            constructor() {}
            supports(t) {
                return po(t)
            }
            create(t) {
                return new rx(t)
            }
        }
        const nx = (e, t) => t;
        class rx {
            constructor(t) {
                this.length = 0,
                this._linkedRecords = null,
                this._unlinkedRecords = null,
                this._previousItHead = null,
                this._itHead = null,
                this._itTail = null,
                this._additionsHead = null,
                this._additionsTail = null,
                this._movesHead = null,
                this._movesTail = null,
                this._removalsHead = null,
                this._removalsTail = null,
                this._identityChangesHead = null,
                this._identityChangesTail = null,
                this._trackByFn = t || nx
            }
            forEachItem(t) {
                let n;
                for (n = this._itHead; null !== n; n = n._next)
                    t(n)
            }
            forEachOperation(t) {
                let n = this._itHead
                  , r = this._removalsHead
                  , i = 0
                  , o = null;
                for (; n || r; ) {
                    const s = !r || n && n.currentIndex < m_(r, i, o) ? n : r
                      , a = m_(s, i, o)
                      , u = s.currentIndex;
                    if (s === r)
                        i--,
                        r = r._nextRemoved;
                    else if (n = n._next,
                    null == s.previousIndex)
                        i++;
                    else {
                        o || (o = []);
                        const l = a - i
                          , c = u - i;
                        if (l != c) {
                            for (let f = 0; f < l; f++) {
                                const h = f < o.length ? o[f] : o[f] = 0
                                  , p = h + f;
                                c <= p && p < l && (o[f] = h + 1)
                            }
                            o[s.previousIndex] = c - l
                        }
                    }
                    a !== u && t(s, a, u)
                }
            }
            forEachPreviousItem(t) {
                let n;
                for (n = this._previousItHead; null !== n; n = n._nextPrevious)
                    t(n)
            }
            forEachAddedItem(t) {
                let n;
                for (n = this._additionsHead; null !== n; n = n._nextAdded)
                    t(n)
            }
            forEachMovedItem(t) {
                let n;
                for (n = this._movesHead; null !== n; n = n._nextMoved)
                    t(n)
            }
            forEachRemovedItem(t) {
                let n;
                for (n = this._removalsHead; null !== n; n = n._nextRemoved)
                    t(n)
            }
            forEachIdentityChange(t) {
                let n;
                for (n = this._identityChangesHead; null !== n; n = n._nextIdentityChange)
                    t(n)
            }
            diff(t) {
                if (null == t && (t = []),
                !po(t))
                    throw new U(900,!1);
                return this.check(t) ? this : null
            }
            onDestroy() {}
            check(t) {
                this._reset();
                let i, o, s, n = this._itHead, r = !1;
                if (Array.isArray(t)) {
                    this.length = t.length;
                    for (let a = 0; a < this.length; a++)
                        o = t[a],
                        s = this._trackByFn(a, o),
                        null !== n && Object.is(n.trackById, s) ? (r && (n = this._verifyReinsertion(n, o, s, a)),
                        Object.is(n.item, o) || this._addIdentityChange(n, o)) : (n = this._mismatch(n, o, s, a),
                        r = !0),
                        n = n._next
                } else
                    i = 0,
                    function CI(e, t) {
                        if (Array.isArray(e))
                            for (let n = 0; n < e.length; n++)
                                t(e[n]);
                        else {
                            const n = e[wr()]();
                            let r;
                            for (; !(r = n.next()).done; )
                                t(r.value)
                        }
                    }(t, a => {
                        s = this._trackByFn(i, a),
                        null !== n && Object.is(n.trackById, s) ? (r && (n = this._verifyReinsertion(n, a, s, i)),
                        Object.is(n.item, a) || this._addIdentityChange(n, a)) : (n = this._mismatch(n, a, s, i),
                        r = !0),
                        n = n._next,
                        i++
                    }
                    ),
                    this.length = i;
                return this._truncate(n),
                this.collection = t,
                this.isDirty
            }
            get isDirty() {
                return null !== this._additionsHead || null !== this._movesHead || null !== this._removalsHead || null !== this._identityChangesHead
            }
            _reset() {
                if (this.isDirty) {
                    let t;
                    for (t = this._previousItHead = this._itHead; null !== t; t = t._next)
                        t._nextPrevious = t._next;
                    for (t = this._additionsHead; null !== t; t = t._nextAdded)
                        t.previousIndex = t.currentIndex;
                    for (this._additionsHead = this._additionsTail = null,
                    t = this._movesHead; null !== t; t = t._nextMoved)
                        t.previousIndex = t.currentIndex;
                    this._movesHead = this._movesTail = null,
                    this._removalsHead = this._removalsTail = null,
                    this._identityChangesHead = this._identityChangesTail = null
                }
            }
            _mismatch(t, n, r, i) {
                let o;
                return null === t ? o = this._itTail : (o = t._prev,
                this._remove(t)),
                null !== (t = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(r, null)) ? (Object.is(t.item, n) || this._addIdentityChange(t, n),
                this._reinsertAfter(t, o, i)) : null !== (t = null === this._linkedRecords ? null : this._linkedRecords.get(r, i)) ? (Object.is(t.item, n) || this._addIdentityChange(t, n),
                this._moveAfter(t, o, i)) : t = this._addAfter(new ix(n,r), o, i),
                t
            }
            _verifyReinsertion(t, n, r, i) {
                let o = null === this._unlinkedRecords ? null : this._unlinkedRecords.get(r, null);
                return null !== o ? t = this._reinsertAfter(o, t._prev, i) : t.currentIndex != i && (t.currentIndex = i,
                this._addToMoves(t, i)),
                t
            }
            _truncate(t) {
                for (; null !== t; ) {
                    const n = t._next;
                    this._addToRemovals(this._unlink(t)),
                    t = n
                }
                null !== this._unlinkedRecords && this._unlinkedRecords.clear(),
                null !== this._additionsTail && (this._additionsTail._nextAdded = null),
                null !== this._movesTail && (this._movesTail._nextMoved = null),
                null !== this._itTail && (this._itTail._next = null),
                null !== this._removalsTail && (this._removalsTail._nextRemoved = null),
                null !== this._identityChangesTail && (this._identityChangesTail._nextIdentityChange = null)
            }
            _reinsertAfter(t, n, r) {
                null !== this._unlinkedRecords && this._unlinkedRecords.remove(t);
                const i = t._prevRemoved
                  , o = t._nextRemoved;
                return null === i ? this._removalsHead = o : i._nextRemoved = o,
                null === o ? this._removalsTail = i : o._prevRemoved = i,
                this._insertAfter(t, n, r),
                this._addToMoves(t, r),
                t
            }
            _moveAfter(t, n, r) {
                return this._unlink(t),
                this._insertAfter(t, n, r),
                this._addToMoves(t, r),
                t
            }
            _addAfter(t, n, r) {
                return this._insertAfter(t, n, r),
                this._additionsTail = null === this._additionsTail ? this._additionsHead = t : this._additionsTail._nextAdded = t,
                t
            }
            _insertAfter(t, n, r) {
                const i = null === n ? this._itHead : n._next;
                return t._next = i,
                t._prev = n,
                null === i ? this._itTail = t : i._prev = t,
                null === n ? this._itHead = t : n._next = t,
                null === this._linkedRecords && (this._linkedRecords = new g_),
                this._linkedRecords.put(t),
                t.currentIndex = r,
                t
            }
            _remove(t) {
                return this._addToRemovals(this._unlink(t))
            }
            _unlink(t) {
                null !== this._linkedRecords && this._linkedRecords.remove(t);
                const n = t._prev
                  , r = t._next;
                return null === n ? this._itHead = r : n._next = r,
                null === r ? this._itTail = n : r._prev = n,
                t
            }
            _addToMoves(t, n) {
                return t.previousIndex === n || (this._movesTail = null === this._movesTail ? this._movesHead = t : this._movesTail._nextMoved = t),
                t
            }
            _addToRemovals(t) {
                return null === this._unlinkedRecords && (this._unlinkedRecords = new g_),
                this._unlinkedRecords.put(t),
                t.currentIndex = null,
                t._nextRemoved = null,
                null === this._removalsTail ? (this._removalsTail = this._removalsHead = t,
                t._prevRemoved = null) : (t._prevRemoved = this._removalsTail,
                this._removalsTail = this._removalsTail._nextRemoved = t),
                t
            }
            _addIdentityChange(t, n) {
                return t.item = n,
                this._identityChangesTail = null === this._identityChangesTail ? this._identityChangesHead = t : this._identityChangesTail._nextIdentityChange = t,
                t
            }
        }
        class ix {
            constructor(t, n) {
                this.item = t,
                this.trackById = n,
                this.currentIndex = null,
                this.previousIndex = null,
                this._nextPrevious = null,
                this._prev = null,
                this._next = null,
                this._prevDup = null,
                this._nextDup = null,
                this._prevRemoved = null,
                this._nextRemoved = null,
                this._nextAdded = null,
                this._nextMoved = null,
                this._nextIdentityChange = null
            }
        }
        class ox {
            constructor() {
                this._head = null,
                this._tail = null
            }
            add(t) {
                null === this._head ? (this._head = this._tail = t,
                t._nextDup = null,
                t._prevDup = null) : (this._tail._nextDup = t,
                t._prevDup = this._tail,
                t._nextDup = null,
                this._tail = t)
            }
            get(t, n) {
                let r;
                for (r = this._head; null !== r; r = r._nextDup)
                    if ((null === n || n <= r.currentIndex) && Object.is(r.trackById, t))
                        return r;
                return null
            }
            remove(t) {
                const n = t._prevDup
                  , r = t._nextDup;
                return null === n ? this._head = r : n._nextDup = r,
                null === r ? this._tail = n : r._prevDup = n,
                null === this._head
            }
        }
        class g_ {
            constructor() {
                this.map = new Map
            }
            put(t) {
                const n = t.trackById;
                let r = this.map.get(n);
                r || (r = new ox,
                this.map.set(n, r)),
                r.add(t)
            }
            get(t, n) {
                const i = this.map.get(t);
                return i ? i.get(t, n) : null
            }
            remove(t) {
                const n = t.trackById;
                return this.map.get(n).remove(t) && this.map.delete(n),
                t
            }
            get isEmpty() {
                return 0 === this.map.size
            }
            clear() {
                this.map.clear()
            }
        }
        function m_(e, t, n) {
            const r = e.previousIndex;
            if (null === r)
                return r;
            let i = 0;
            return n && r < n.length && (i = n[r]),
            r + t + i
        }
        function y_() {
            return new _a([new p_])
        }
        let _a = ( () => {
            class e {
                constructor(n) {
                    this.factories = n
                }
                static create(n, r) {
                    if (null != r) {
                        const i = r.factories.slice();
                        n = n.concat(i)
                    }
                    return new e(n)
                }
                static extend(n) {
                    return {
                        provide: e,
                        useFactory: r => e.create(n, r || y_()),
                        deps: [[e, new no, new Fn]]
                    }
                }
                find(n) {
                    const r = this.factories.find(i => i.supports(n));
                    if (null != r)
                        return r;
                    throw new U(901,!1)
                }
            }
            return e.\u0275prov = I({
                token: e,
                providedIn: "root",
                factory: y_
            }),
            e
        }
        )();
        const cx = n_(null, "core", []);
        let dx = ( () => {
            class e {
                constructor(n) {}
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(pa))
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({}),
            e
        }
        )();
        function Bn(e) {
            return "boolean" == typeof e ? e : null != e && "false" !== e
        }
        let Da = null;
        function Dn() {
            return Da
        }
        const st = new N("DocumentToken");
        let Fo = ( () => {
            class e {
                historyGo(n) {
                    throw new Error("Not implemented")
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: function() {
                    return function gx() {
                        return S(D_)
                    }()
                },
                providedIn: "platform"
            }),
            e
        }
        )();
        const mx = new N("Location Initialized");
        let D_ = ( () => {
            class e extends Fo {
                constructor(n) {
                    super(),
                    this._doc = n,
                    this._init()
                }
                _init() {
                    this.location = window.location,
                    this._history = window.history
                }
                getBaseHrefFromDOM() {
                    return Dn().getBaseHref(this._doc)
                }
                onPopState(n) {
                    const r = Dn().getGlobalEventTarget(this._doc, "window");
                    return r.addEventListener("popstate", n, !1),
                    () => r.removeEventListener("popstate", n)
                }
                onHashChange(n) {
                    const r = Dn().getGlobalEventTarget(this._doc, "window");
                    return r.addEventListener("hashchange", n, !1),
                    () => r.removeEventListener("hashchange", n)
                }
                get href() {
                    return this.location.href
                }
                get protocol() {
                    return this.location.protocol
                }
                get hostname() {
                    return this.location.hostname
                }
                get port() {
                    return this.location.port
                }
                get pathname() {
                    return this.location.pathname
                }
                get search() {
                    return this.location.search
                }
                get hash() {
                    return this.location.hash
                }
                set pathname(n) {
                    this.location.pathname = n
                }
                pushState(n, r, i) {
                    C_() ? this._history.pushState(n, r, i) : this.location.hash = i
                }
                replaceState(n, r, i) {
                    C_() ? this._history.replaceState(n, r, i) : this.location.hash = i
                }
                forward() {
                    this._history.forward()
                }
                back() {
                    this._history.back()
                }
                historyGo(n=0) {
                    this._history.go(n)
                }
                getState() {
                    return this._history.state
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(st))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: function() {
                    return function vx() {
                        return new D_(S(st))
                    }()
                },
                providedIn: "platform"
            }),
            e
        }
        )();
        function C_() {
            return !!window.history.pushState
        }
        function ud(e, t) {
            if (0 == e.length)
                return t;
            if (0 == t.length)
                return e;
            let n = 0;
            return e.endsWith("/") && n++,
            t.startsWith("/") && n++,
            2 == n ? e + t.substring(1) : 1 == n ? e + t : e + "/" + t
        }
        function w_(e) {
            const t = e.match(/#|\?|$/)
              , n = t && t.index || e.length;
            return e.slice(0, n - ("/" === e[n - 1] ? 1 : 0)) + e.slice(n)
        }
        function Hn(e) {
            return e && "?" !== e[0] ? "?" + e : e
        }
        let Si = ( () => {
            class e {
                historyGo(n) {
                    throw new Error("Not implemented")
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: function() {
                    return function yx() {
                        const e = S(st).location;
                        return new b_(S(Fo),e && e.origin || "")
                    }()
                },
                providedIn: "root"
            }),
            e
        }
        )();
        const ld = new N("appBaseHref");
        let b_ = ( () => {
            class e extends Si {
                constructor(n, r) {
                    if (super(),
                    this._platformLocation = n,
                    this._removeListenerFns = [],
                    null == r && (r = this._platformLocation.getBaseHrefFromDOM()),
                    null == r)
                        throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");
                    this._baseHref = r
                }
                ngOnDestroy() {
                    for (; this._removeListenerFns.length; )
                        this._removeListenerFns.pop()()
                }
                onPopState(n) {
                    this._removeListenerFns.push(this._platformLocation.onPopState(n), this._platformLocation.onHashChange(n))
                }
                getBaseHref() {
                    return this._baseHref
                }
                prepareExternalUrl(n) {
                    return ud(this._baseHref, n)
                }
                path(n=!1) {
                    const r = this._platformLocation.pathname + Hn(this._platformLocation.search)
                      , i = this._platformLocation.hash;
                    return i && n ? `${r}${i}` : r
                }
                pushState(n, r, i, o) {
                    const s = this.prepareExternalUrl(i + Hn(o));
                    this._platformLocation.pushState(n, r, s)
                }
                replaceState(n, r, i, o) {
                    const s = this.prepareExternalUrl(i + Hn(o));
                    this._platformLocation.replaceState(n, r, s)
                }
                forward() {
                    this._platformLocation.forward()
                }
                back() {
                    this._platformLocation.back()
                }
                getState() {
                    return this._platformLocation.getState()
                }
                historyGo(n=0) {
                    var r, i;
                    null === (i = (r = this._platformLocation).historyGo) || void 0 === i || i.call(r, n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Fo),S(ld, 8))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )()
          , _x = ( () => {
            class e extends Si {
                constructor(n, r) {
                    super(),
                    this._platformLocation = n,
                    this._baseHref = "",
                    this._removeListenerFns = [],
                    null != r && (this._baseHref = r)
                }
                ngOnDestroy() {
                    for (; this._removeListenerFns.length; )
                        this._removeListenerFns.pop()()
                }
                onPopState(n) {
                    this._removeListenerFns.push(this._platformLocation.onPopState(n), this._platformLocation.onHashChange(n))
                }
                getBaseHref() {
                    return this._baseHref
                }
                path(n=!1) {
                    let r = this._platformLocation.hash;
                    return null == r && (r = "#"),
                    r.length > 0 ? r.substring(1) : r
                }
                prepareExternalUrl(n) {
                    const r = ud(this._baseHref, n);
                    return r.length > 0 ? "#" + r : r
                }
                pushState(n, r, i, o) {
                    let s = this.prepareExternalUrl(i + Hn(o));
                    0 == s.length && (s = this._platformLocation.pathname),
                    this._platformLocation.pushState(n, r, s)
                }
                replaceState(n, r, i, o) {
                    let s = this.prepareExternalUrl(i + Hn(o));
                    0 == s.length && (s = this._platformLocation.pathname),
                    this._platformLocation.replaceState(n, r, s)
                }
                forward() {
                    this._platformLocation.forward()
                }
                back() {
                    this._platformLocation.back()
                }
                getState() {
                    return this._platformLocation.getState()
                }
                historyGo(n=0) {
                    var r, i;
                    null === (i = (r = this._platformLocation).historyGo) || void 0 === i || i.call(r, n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Fo),S(ld, 8))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )()
          , cd = ( () => {
            class e {
                constructor(n) {
                    this._subject = new Ee,
                    this._urlChangeListeners = [],
                    this._urlChangeSubscription = null,
                    this._locationStrategy = n;
                    const r = this._locationStrategy.getBaseHref();
                    this._baseHref = w_(E_(r)),
                    this._locationStrategy.onPopState(i => {
                        this._subject.emit({
                            url: this.path(!0),
                            pop: !0,
                            state: i.state,
                            type: i.type
                        })
                    }
                    )
                }
                ngOnDestroy() {
                    var n;
                    null === (n = this._urlChangeSubscription) || void 0 === n || n.unsubscribe(),
                    this._urlChangeListeners = []
                }
                path(n=!1) {
                    return this.normalize(this._locationStrategy.path(n))
                }
                getState() {
                    return this._locationStrategy.getState()
                }
                isCurrentPathEqualTo(n, r="") {
                    return this.path() == this.normalize(n + Hn(r))
                }
                normalize(n) {
                    return e.stripTrailingSlash(function Cx(e, t) {
                        return e && t.startsWith(e) ? t.substring(e.length) : t
                    }(this._baseHref, E_(n)))
                }
                prepareExternalUrl(n) {
                    return n && "/" !== n[0] && (n = "/" + n),
                    this._locationStrategy.prepareExternalUrl(n)
                }
                go(n, r="", i=null) {
                    this._locationStrategy.pushState(i, "", n, r),
                    this._notifyUrlChangeListeners(this.prepareExternalUrl(n + Hn(r)), i)
                }
                replaceState(n, r="", i=null) {
                    this._locationStrategy.replaceState(i, "", n, r),
                    this._notifyUrlChangeListeners(this.prepareExternalUrl(n + Hn(r)), i)
                }
                forward() {
                    this._locationStrategy.forward()
                }
                back() {
                    this._locationStrategy.back()
                }
                historyGo(n=0) {
                    var r, i;
                    null === (i = (r = this._locationStrategy).historyGo) || void 0 === i || i.call(r, n)
                }
                onUrlChange(n) {
                    return this._urlChangeListeners.push(n),
                    this._urlChangeSubscription || (this._urlChangeSubscription = this.subscribe(r => {
                        this._notifyUrlChangeListeners(r.url, r.state)
                    }
                    )),
                    () => {
                        var r;
                        const i = this._urlChangeListeners.indexOf(n);
                        this._urlChangeListeners.splice(i, 1),
                        0 === this._urlChangeListeners.length && (null === (r = this._urlChangeSubscription) || void 0 === r || r.unsubscribe(),
                        this._urlChangeSubscription = null)
                    }
                }
                _notifyUrlChangeListeners(n="", r) {
                    this._urlChangeListeners.forEach(i => i(n, r))
                }
                subscribe(n, r, i) {
                    return this._subject.subscribe({
                        next: n,
                        error: r,
                        complete: i
                    })
                }
            }
            return e.normalizeQueryParams = Hn,
            e.joinWithSlash = ud,
            e.stripTrailingSlash = w_,
            e.\u0275fac = function(n) {
                return new (n || e)(S(Si))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: function() {
                    return function Dx() {
                        return new cd(S(Si))
                    }()
                },
                providedIn: "root"
            }),
            e
        }
        )();
        function E_(e) {
            return e.replace(/\/index.html$/, "")
        }
        function N_(e, t) {
            t = encodeURIComponent(t);
            for (const n of e.split(";")) {
                const r = n.indexOf("=")
                  , [i,o] = -1 == r ? [n, ""] : [n.slice(0, r), n.slice(r + 1)];
                if (i.trim() === t)
                    return decodeURIComponent(o)
            }
            return null
        }
        class sR {
            constructor(t, n, r, i) {
                this.$implicit = t,
                this.ngForOf = n,
                this.index = r,
                this.count = i
            }
            get first() {
                return 0 === this.index
            }
            get last() {
                return this.index === this.count - 1
            }
            get even() {
                return this.index % 2 == 0
            }
            get odd() {
                return !this.even
            }
        }
        let O_ = ( () => {
            class e {
                constructor(n, r, i) {
                    this._viewContainer = n,
                    this._template = r,
                    this._differs = i,
                    this._ngForOf = null,
                    this._ngForOfDirty = !0,
                    this._differ = null
                }
                set ngForOf(n) {
                    this._ngForOf = n,
                    this._ngForOfDirty = !0
                }
                set ngForTrackBy(n) {
                    this._trackByFn = n
                }
                get ngForTrackBy() {
                    return this._trackByFn
                }
                set ngForTemplate(n) {
                    n && (this._template = n)
                }
                ngDoCheck() {
                    if (this._ngForOfDirty) {
                        this._ngForOfDirty = !1;
                        const n = this._ngForOf;
                        !this._differ && n && (this._differ = this._differs.find(n).create(this.ngForTrackBy))
                    }
                    if (this._differ) {
                        const n = this._differ.diff(this._ngForOf);
                        n && this._applyChanges(n)
                    }
                }
                _applyChanges(n) {
                    const r = this._viewContainer;
                    n.forEachOperation( (i, o, s) => {
                        if (null == i.previousIndex)
                            r.createEmbeddedView(this._template, new sR(i.item,this._ngForOf,-1,-1), null === s ? void 0 : s);
                        else if (null == s)
                            r.remove(null === o ? void 0 : o);
                        else if (null !== o) {
                            const a = r.get(o);
                            r.move(a, s),
                            k_(a, i)
                        }
                    }
                    );
                    for (let i = 0, o = r.length; i < o; i++) {
                        const a = r.get(i).context;
                        a.index = i,
                        a.count = o,
                        a.ngForOf = this._ngForOf
                    }
                    n.forEachIdentityChange(i => {
                        k_(r.get(i.currentIndex), i)
                    }
                    )
                }
                static ngTemplateContextGuard(n, r) {
                    return !0
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(zt),_(Ln),_(_a))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["", "ngFor", "", "ngForOf", ""]],
                inputs: {
                    ngForOf: "ngForOf",
                    ngForTrackBy: "ngForTrackBy",
                    ngForTemplate: "ngForTemplate"
                }
            }),
            e
        }
        )();
        function k_(e, t) {
            e.context.$implicit = t.item
        }
        let xa = ( () => {
            class e {
                constructor(n, r) {
                    this._viewContainer = n,
                    this._context = new aR,
                    this._thenTemplateRef = null,
                    this._elseTemplateRef = null,
                    this._thenViewRef = null,
                    this._elseViewRef = null,
                    this._thenTemplateRef = r
                }
                set ngIf(n) {
                    this._context.$implicit = this._context.ngIf = n,
                    this._updateView()
                }
                set ngIfThen(n) {
                    L_("ngIfThen", n),
                    this._thenTemplateRef = n,
                    this._thenViewRef = null,
                    this._updateView()
                }
                set ngIfElse(n) {
                    L_("ngIfElse", n),
                    this._elseTemplateRef = n,
                    this._elseViewRef = null,
                    this._updateView()
                }
                _updateView() {
                    this._context.$implicit ? this._thenViewRef || (this._viewContainer.clear(),
                    this._elseViewRef = null,
                    this._thenTemplateRef && (this._thenViewRef = this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context))) : this._elseViewRef || (this._viewContainer.clear(),
                    this._thenViewRef = null,
                    this._elseTemplateRef && (this._elseViewRef = this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context)))
                }
                static ngTemplateContextGuard(n, r) {
                    return !0
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(zt),_(Ln))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["", "ngIf", ""]],
                inputs: {
                    ngIf: "ngIf",
                    ngIfThen: "ngIfThen",
                    ngIfElse: "ngIfElse"
                }
            }),
            e
        }
        )();
        class aR {
            constructor() {
                this.$implicit = null,
                this.ngIf = null
            }
        }
        function L_(e, t) {
            if (t && !t.createEmbeddedView)
                throw new Error(`${e} must be a TemplateRef, but received '${se(t)}'.`)
        }
        let PR = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({}),
            e
        }
        )();
        let VR = ( () => {
            class e {
            }
            return e.\u0275prov = I({
                token: e,
                providedIn: "root",
                factory: () => new jR(S(st),window)
            }),
            e
        }
        )();
        class jR {
            constructor(t, n) {
                this.document = t,
                this.window = n,
                this.offset = () => [0, 0]
            }
            setOffset(t) {
                this.offset = Array.isArray(t) ? () => t : t
            }
            getScrollPosition() {
                return this.supportsScrolling() ? [this.window.pageXOffset, this.window.pageYOffset] : [0, 0]
            }
            scrollToPosition(t) {
                this.supportsScrolling() && this.window.scrollTo(t[0], t[1])
            }
            scrollToAnchor(t) {
                if (!this.supportsScrolling())
                    return;
                const n = function BR(e, t) {
                    const n = e.getElementById(t) || e.getElementsByName(t)[0];
                    if (n)
                        return n;
                    if ("function" == typeof e.createTreeWalker && e.body && (e.body.createShadowRoot || e.body.attachShadow)) {
                        const r = e.createTreeWalker(e.body, NodeFilter.SHOW_ELEMENT);
                        let i = r.currentNode;
                        for (; i; ) {
                            const o = i.shadowRoot;
                            if (o) {
                                const s = o.getElementById(t) || o.querySelector(`[name="${t}"]`);
                                if (s)
                                    return s
                            }
                            i = r.nextNode()
                        }
                    }
                    return null
                }(this.document, t);
                n && (this.scrollToElement(n),
                n.focus())
            }
            setHistoryScrollRestoration(t) {
                if (this.supportScrollRestoration()) {
                    const n = this.window.history;
                    n && n.scrollRestoration && (n.scrollRestoration = t)
                }
            }
            scrollToElement(t) {
                const n = t.getBoundingClientRect()
                  , r = n.left + this.window.pageXOffset
                  , i = n.top + this.window.pageYOffset
                  , o = this.offset();
                this.window.scrollTo(r - o[0], i - o[1])
            }
            supportScrollRestoration() {
                try {
                    if (!this.supportsScrolling())
                        return !1;
                    const t = H_(this.window.history) || H_(Object.getPrototypeOf(this.window.history));
                    return !(!t || !t.writable && !t.set)
                } catch (t) {
                    return !1
                }
            }
            supportsScrolling() {
                try {
                    return !!this.window && !!this.window.scrollTo && "pageXOffset"in this.window
                } catch (t) {
                    return !1
                }
            }
        }
        function H_(e) {
            return Object.getOwnPropertyDescriptor(e, "scrollRestoration")
        }
        class U_ {
        }
        class Ed extends class HR extends class px {
        }
        {
            constructor() {
                super(...arguments),
                this.supportsDOMEvents = !0
            }
        }
        {
            static makeCurrent() {
                !function hx(e) {
                    Da || (Da = e)
                }(new Ed)
            }
            onAndCancel(t, n, r) {
                return t.addEventListener(n, r, !1),
                () => {
                    t.removeEventListener(n, r, !1)
                }
            }
            dispatchEvent(t, n) {
                t.dispatchEvent(n)
            }
            remove(t) {
                t.parentNode && t.parentNode.removeChild(t)
            }
            createElement(t, n) {
                return (n = n || this.getDefaultDocument()).createElement(t)
            }
            createHtmlDocument() {
                return document.implementation.createHTMLDocument("fakeTitle")
            }
            getDefaultDocument() {
                return document
            }
            isElementNode(t) {
                return t.nodeType === Node.ELEMENT_NODE
            }
            isShadowRoot(t) {
                return t instanceof DocumentFragment
            }
            getGlobalEventTarget(t, n) {
                return "window" === n ? window : "document" === n ? t : "body" === n ? t.body : null
            }
            getBaseHref(t) {
                const n = function UR() {
                    return Oo = Oo || document.querySelector("base"),
                    Oo ? Oo.getAttribute("href") : null
                }();
                return null == n ? null : function $R(e) {
                    Ra = Ra || document.createElement("a"),
                    Ra.setAttribute("href", e);
                    const t = Ra.pathname;
                    return "/" === t.charAt(0) ? t : `/${t}`
                }(n)
            }
            resetBaseElement() {
                Oo = null
            }
            getUserAgent() {
                return window.navigator.userAgent
            }
            getCookie(t) {
                return N_(document.cookie, t)
            }
        }
        let Ra, Oo = null;
        const $_ = new N("TRANSITION_ID")
          , qR = [{
            provide: Zc,
            useFactory: function GR(e, t, n) {
                return () => {
                    n.get(fa).donePromise.then( () => {
                        const r = Dn()
                          , i = t.querySelectorAll(`style[ng-transition="${e}"]`);
                        for (let o = 0; o < i.length; o++)
                            r.remove(i[o])
                    }
                    )
                }
            },
            deps: [$_, st, Ye],
            multi: !0
        }];
        let zR = ( () => {
            class e {
                build() {
                    return new XMLHttpRequest
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        const Fa = new N("EventManagerPlugins");
        let Na = ( () => {
            class e {
                constructor(n, r) {
                    this._zone = r,
                    this._eventNameToPlugin = new Map,
                    n.forEach(i => i.manager = this),
                    this._plugins = n.slice().reverse()
                }
                addEventListener(n, r, i) {
                    return this._findPluginFor(r).addEventListener(n, r, i)
                }
                addGlobalEventListener(n, r, i) {
                    return this._findPluginFor(r).addGlobalEventListener(n, r, i)
                }
                getZone() {
                    return this._zone
                }
                _findPluginFor(n) {
                    const r = this._eventNameToPlugin.get(n);
                    if (r)
                        return r;
                    const i = this._plugins;
                    for (let o = 0; o < i.length; o++) {
                        const s = i[o];
                        if (s.supports(n))
                            return this._eventNameToPlugin.set(n, s),
                            s
                    }
                    throw new Error(`No event manager plugin found for event ${n}`)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Fa),S(xe))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        class G_ {
            constructor(t) {
                this._doc = t
            }
            addGlobalEventListener(t, n, r) {
                const i = Dn().getGlobalEventTarget(this._doc, t);
                if (!i)
                    throw new Error(`Unsupported event target ${i} for event ${n}`);
                return this.addEventListener(i, n, r)
            }
        }
        let q_ = ( () => {
            class e {
                constructor() {
                    this._stylesSet = new Set
                }
                addStyles(n) {
                    const r = new Set;
                    n.forEach(i => {
                        this._stylesSet.has(i) || (this._stylesSet.add(i),
                        r.add(i))
                    }
                    ),
                    this.onStylesAdded(r)
                }
                onStylesAdded(n) {}
                getAllStyles() {
                    return Array.from(this._stylesSet)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )()
          , ko = ( () => {
            class e extends q_ {
                constructor(n) {
                    super(),
                    this._doc = n,
                    this._hostNodes = new Map,
                    this._hostNodes.set(n.head, [])
                }
                _addStylesToHost(n, r, i) {
                    n.forEach(o => {
                        const s = this._doc.createElement("style");
                        s.textContent = o,
                        i.push(r.appendChild(s))
                    }
                    )
                }
                addHost(n) {
                    const r = [];
                    this._addStylesToHost(this._stylesSet, n, r),
                    this._hostNodes.set(n, r)
                }
                removeHost(n) {
                    const r = this._hostNodes.get(n);
                    r && r.forEach(W_),
                    this._hostNodes.delete(n)
                }
                onStylesAdded(n) {
                    this._hostNodes.forEach( (r, i) => {
                        this._addStylesToHost(n, i, r)
                    }
                    )
                }
                ngOnDestroy() {
                    this._hostNodes.forEach(n => n.forEach(W_))
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(st))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        function W_(e) {
            Dn().remove(e)
        }
        const Sd = {
            svg: "http://www.w3.org/2000/svg",
            xhtml: "http://www.w3.org/1999/xhtml",
            xlink: "http://www.w3.org/1999/xlink",
            xml: "http://www.w3.org/XML/1998/namespace",
            xmlns: "http://www.w3.org/2000/xmlns/",
            math: "http://www.w3.org/1998/MathML/"
        }
          , Md = /%COMP%/g;
        function Pa(e, t, n) {
            for (let r = 0; r < t.length; r++) {
                let i = t[r];
                Array.isArray(i) ? Pa(e, i, n) : (i = i.replace(Md, e),
                n.push(i))
            }
            return n
        }
        function Y_(e) {
            return t => {
                if ("__ngUnwrap__" === t)
                    return e;
                !1 === e(t) && (t.preventDefault(),
                t.returnValue = !1)
            }
        }
        let Id = ( () => {
            class e {
                constructor(n, r, i) {
                    this.eventManager = n,
                    this.sharedStylesHost = r,
                    this.appId = i,
                    this.rendererByCompId = new Map,
                    this.defaultRenderer = new Ad(n)
                }
                createRenderer(n, r) {
                    if (!n || !r)
                        return this.defaultRenderer;
                    switch (r.encapsulation) {
                    case sn.Emulated:
                        {
                            let i = this.rendererByCompId.get(r.id);
                            return i || (i = new KR(this.eventManager,this.sharedStylesHost,r,this.appId),
                            this.rendererByCompId.set(r.id, i)),
                            i.applyToHost(n),
                            i
                        }
                    case 1:
                    case sn.ShadowDom:
                        return new eF(this.eventManager,this.sharedStylesHost,n,r);
                    default:
                        if (!this.rendererByCompId.has(r.id)) {
                            const i = Pa(r.id, r.styles, []);
                            this.sharedStylesHost.addStyles(i),
                            this.rendererByCompId.set(r.id, this.defaultRenderer)
                        }
                        return this.defaultRenderer
                    }
                }
                begin() {}
                end() {}
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Na),S(ko),S(To))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        class Ad {
            constructor(t) {
                this.eventManager = t,
                this.data = Object.create(null),
                this.destroyNode = null
            }
            destroy() {}
            createElement(t, n) {
                return n ? document.createElementNS(Sd[n] || n, t) : document.createElement(t)
            }
            createComment(t) {
                return document.createComment(t)
            }
            createText(t) {
                return document.createTextNode(t)
            }
            appendChild(t, n) {
                (Q_(t) ? t.content : t).appendChild(n)
            }
            insertBefore(t, n, r) {
                t && (Q_(t) ? t.content : t).insertBefore(n, r)
            }
            removeChild(t, n) {
                t && t.removeChild(n)
            }
            selectRootElement(t, n) {
                let r = "string" == typeof t ? document.querySelector(t) : t;
                if (!r)
                    throw new Error(`The selector "${t}" did not match any elements`);
                return n || (r.textContent = ""),
                r
            }
            parentNode(t) {
                return t.parentNode
            }
            nextSibling(t) {
                return t.nextSibling
            }
            setAttribute(t, n, r, i) {
                if (i) {
                    n = i + ":" + n;
                    const o = Sd[i];
                    o ? t.setAttributeNS(o, n, r) : t.setAttribute(n, r)
                } else
                    t.setAttribute(n, r)
            }
            removeAttribute(t, n, r) {
                if (r) {
                    const i = Sd[r];
                    i ? t.removeAttributeNS(i, n) : t.removeAttribute(`${r}:${n}`)
                } else
                    t.removeAttribute(n)
            }
            addClass(t, n) {
                t.classList.add(n)
            }
            removeClass(t, n) {
                t.classList.remove(n)
            }
            setStyle(t, n, r, i) {
                i & (Dt.DashCase | Dt.Important) ? t.style.setProperty(n, r, i & Dt.Important ? "important" : "") : t.style[n] = r
            }
            removeStyle(t, n, r) {
                r & Dt.DashCase ? t.style.removeProperty(n) : t.style[n] = ""
            }
            setProperty(t, n, r) {
                t[n] = r
            }
            setValue(t, n) {
                t.nodeValue = n
            }
            listen(t, n, r) {
                return "string" == typeof t ? this.eventManager.addGlobalEventListener(t, n, Y_(r)) : this.eventManager.addEventListener(t, n, Y_(r))
            }
        }
        function Q_(e) {
            return "TEMPLATE" === e.tagName && void 0 !== e.content
        }
        class KR extends Ad {
            constructor(t, n, r, i) {
                super(t),
                this.component = r;
                const o = Pa(i + "-" + r.id, r.styles, []);
                n.addStyles(o),
                this.contentAttr = function JR(e) {
                    return "_ngcontent-%COMP%".replace(Md, e)
                }(i + "-" + r.id),
                this.hostAttr = function QR(e) {
                    return "_nghost-%COMP%".replace(Md, e)
                }(i + "-" + r.id)
            }
            applyToHost(t) {
                super.setAttribute(t, this.hostAttr, "")
            }
            createElement(t, n) {
                const r = super.createElement(t, n);
                return super.setAttribute(r, this.contentAttr, ""),
                r
            }
        }
        class eF extends Ad {
            constructor(t, n, r, i) {
                super(t),
                this.sharedStylesHost = n,
                this.hostEl = r,
                this.shadowRoot = r.attachShadow({
                    mode: "open"
                }),
                this.sharedStylesHost.addHost(this.shadowRoot);
                const o = Pa(i.id, i.styles, []);
                for (let s = 0; s < o.length; s++) {
                    const a = document.createElement("style");
                    a.textContent = o[s],
                    this.shadowRoot.appendChild(a)
                }
            }
            nodeOrShadowRoot(t) {
                return t === this.hostEl ? this.shadowRoot : t
            }
            destroy() {
                this.sharedStylesHost.removeHost(this.shadowRoot)
            }
            appendChild(t, n) {
                return super.appendChild(this.nodeOrShadowRoot(t), n)
            }
            insertBefore(t, n, r) {
                return super.insertBefore(this.nodeOrShadowRoot(t), n, r)
            }
            removeChild(t, n) {
                return super.removeChild(this.nodeOrShadowRoot(t), n)
            }
            parentNode(t) {
                return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))
            }
        }
        let tF = ( () => {
            class e extends G_ {
                constructor(n) {
                    super(n)
                }
                supports(n) {
                    return !0
                }
                addEventListener(n, r, i) {
                    return n.addEventListener(r, i, !1),
                    () => this.removeEventListener(n, r, i)
                }
                removeEventListener(n, r, i) {
                    return n.removeEventListener(r, i)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(st))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        const X_ = ["alt", "control", "meta", "shift"]
          , rF = {
            "\b": "Backspace",
            "\t": "Tab",
            "\x7f": "Delete",
            "\x1b": "Escape",
            Del: "Delete",
            Esc: "Escape",
            Left: "ArrowLeft",
            Right: "ArrowRight",
            Up: "ArrowUp",
            Down: "ArrowDown",
            Menu: "ContextMenu",
            Scroll: "ScrollLock",
            Win: "OS"
        }
          , K_ = {
            A: "1",
            B: "2",
            C: "3",
            D: "4",
            E: "5",
            F: "6",
            G: "7",
            H: "8",
            I: "9",
            J: "*",
            K: "+",
            M: "-",
            N: ".",
            O: "/",
            "`": "0",
            "\x90": "NumLock"
        }
          , iF = {
            alt: e => e.altKey,
            control: e => e.ctrlKey,
            meta: e => e.metaKey,
            shift: e => e.shiftKey
        };
        let oF = ( () => {
            class e extends G_ {
                constructor(n) {
                    super(n)
                }
                supports(n) {
                    return null != e.parseEventName(n)
                }
                addEventListener(n, r, i) {
                    const o = e.parseEventName(r)
                      , s = e.eventCallback(o.fullKey, i, this.manager.getZone());
                    return this.manager.getZone().runOutsideAngular( () => Dn().onAndCancel(n, o.domEventName, s))
                }
                static parseEventName(n) {
                    const r = n.toLowerCase().split(".")
                      , i = r.shift();
                    if (0 === r.length || "keydown" !== i && "keyup" !== i)
                        return null;
                    const o = e._normalizeKey(r.pop());
                    let s = "";
                    if (X_.forEach(u => {
                        const l = r.indexOf(u);
                        l > -1 && (r.splice(l, 1),
                        s += u + ".")
                    }
                    ),
                    s += o,
                    0 != r.length || 0 === o.length)
                        return null;
                    const a = {};
                    return a.domEventName = i,
                    a.fullKey = s,
                    a
                }
                static getEventFullKey(n) {
                    let r = ""
                      , i = function sF(e) {
                        let t = e.key;
                        if (null == t) {
                            if (t = e.keyIdentifier,
                            null == t)
                                return "Unidentified";
                            t.startsWith("U+") && (t = String.fromCharCode(parseInt(t.substring(2), 16)),
                            3 === e.location && K_.hasOwnProperty(t) && (t = K_[t]))
                        }
                        return rF[t] || t
                    }(n);
                    return i = i.toLowerCase(),
                    " " === i ? i = "space" : "." === i && (i = "dot"),
                    X_.forEach(o => {
                        o != i && iF[o](n) && (r += o + ".")
                    }
                    ),
                    r += i,
                    r
                }
                static eventCallback(n, r, i) {
                    return o => {
                        e.getEventFullKey(o) === n && i.runGuarded( () => r(o))
                    }
                }
                static _normalizeKey(n) {
                    return "esc" === n ? "escape" : n
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(st))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        const cF = n_(cx, "browser", [{
            provide: Jc,
            useValue: "browser"
        }, {
            provide: zy,
            useValue: function aF() {
                Ed.makeCurrent()
            },
            multi: !0
        }, {
            provide: st,
            useFactory: function lF() {
                return function cb(e) {
                    ku = e
                }(document),
                document
            },
            deps: []
        }])
          , tD = new N("")
          , nD = [{
            provide: ha,
            useClass: class WR {
                addToWindow(t) {
                    re.getAngularTestability = (r, i=!0) => {
                        const o = t.findTestabilityInTree(r, i);
                        if (null == o)
                            throw new Error("Could not find testability for element.");
                        return o
                    }
                    ,
                    re.getAllAngularTestabilities = () => t.getAllTestabilities(),
                    re.getAllAngularRootElements = () => t.getAllRootElements(),
                    re.frameworkStabilizers || (re.frameworkStabilizers = []),
                    re.frameworkStabilizers.push(r => {
                        const i = re.getAllAngularTestabilities();
                        let o = i.length
                          , s = !1;
                        const a = function(u) {
                            s = s || u,
                            o--,
                            0 == o && r(s)
                        };
                        i.forEach(function(u) {
                            u.whenStable(a)
                        })
                    }
                    )
                }
                findTestabilityInTree(t, n, r) {
                    if (null == n)
                        return null;
                    const i = t.getTestability(n);
                    return null != i ? i : r ? Dn().isShadowRoot(n) ? this.findTestabilityInTree(t, n.host, !0) : this.findTestabilityInTree(t, n.parentElement, !0) : null
                }
            }
            ,
            deps: []
        }, {
            provide: Qy,
            useClass: td,
            deps: [xe, nd, ha]
        }, {
            provide: td,
            useClass: td,
            deps: [xe, nd, ha]
        }]
          , rD = [{
            provide: Nl,
            useValue: "root"
        }, {
            provide: ei,
            useFactory: function uF() {
                return new ei
            },
            deps: []
        }, {
            provide: Fa,
            useClass: tF,
            multi: !0,
            deps: [st, xe, Jc]
        }, {
            provide: Fa,
            useClass: oF,
            multi: !0,
            deps: [st]
        }, {
            provide: Id,
            useClass: Id,
            deps: [Na, ko, To]
        }, {
            provide: dy,
            useExisting: Id
        }, {
            provide: q_,
            useExisting: ko
        }, {
            provide: ko,
            useClass: ko,
            deps: [st]
        }, {
            provide: Na,
            useClass: Na,
            deps: [Fa, xe]
        }, {
            provide: U_,
            useClass: zR,
            deps: []
        }, []];
        let dF = ( () => {
            class e {
                constructor(n) {}
                static withServerTransition(n) {
                    return {
                        ngModule: e,
                        providers: [{
                            provide: To,
                            useValue: n.appId
                        }, {
                            provide: $_,
                            useExisting: To
                        }, qR]
                    }
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(tD, 12))
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({
                providers: [...rD, ...nD],
                imports: [PR, dx]
            }),
            e
        }
        )()
          , iD = ( () => {
            class e {
                constructor(n) {
                    this._doc = n
                }
                getTitle() {
                    return this._doc.title
                }
                setTitle(n) {
                    this._doc.title = n || ""
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(st))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: function(n) {
                    let r = null;
                    return r = n ? new n : function hF() {
                        return new iD(S(st))
                    }(),
                    r
                },
                providedIn: "root"
            }),
            e
        }
        )();
        "undefined" != typeof window && window;
        const {isArray: wF} = Array
          , {getPrototypeOf: bF, prototype: EF, keys: SF} = Object;
        function aD(e) {
            if (1 === e.length) {
                const t = e[0];
                if (wF(t))
                    return {
                        args: t,
                        keys: null
                    };
                if (function MF(e) {
                    return e && "object" == typeof e && bF(e) === EF
                }(t)) {
                    const n = SF(t);
                    return {
                        args: n.map(r => t[r]),
                        keys: n
                    }
                }
            }
            return {
                args: e,
                keys: null
            }
        }
        const {isArray: IF} = Array;
        function uD(e) {
            return X(t => function AF(e, t) {
                return IF(t) ? e(...t) : e(t)
            }(e, t))
        }
        function lD(e, t) {
            return e.reduce( (n, r, i) => (n[r] = t[i],
            n), {})
        }
        let cD = ( () => {
            class e {
                constructor(n, r) {
                    this._renderer = n,
                    this._elementRef = r,
                    this.onChange = i => {}
                    ,
                    this.onTouched = () => {}
                }
                setProperty(n, r) {
                    this._renderer.setProperty(this._elementRef.nativeElement, n, r)
                }
                registerOnTouched(n) {
                    this.onTouched = n
                }
                registerOnChange(n) {
                    this.onChange = n
                }
                setDisabledState(n) {
                    this.setProperty("disabled", n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(kn),_(wt))
            }
            ,
            e.\u0275dir = R({
                type: e
            }),
            e
        }
        )()
          , Ir = ( () => {
            class e extends cD {
            }
            return e.\u0275fac = function() {
                let t;
                return function(r) {
                    return (t || (t = $e(e)))(r || e)
                }
            }(),
            e.\u0275dir = R({
                type: e,
                features: [ee]
            }),
            e
        }
        )();
        const Cn = new N("NgValueAccessor")
          , RF = {
            provide: Cn,
            useExisting: de( () => Lo),
            multi: !0
        }
          , NF = new N("CompositionEventMode");
        let Lo = ( () => {
            class e extends cD {
                constructor(n, r, i) {
                    super(n, r),
                    this._compositionMode = i,
                    this._composing = !1,
                    null == this._compositionMode && (this._compositionMode = !function FF() {
                        const e = Dn() ? Dn().getUserAgent() : "";
                        return /android (\d+)/.test(e.toLowerCase())
                    }())
                }
                writeValue(n) {
                    this.setProperty("value", null == n ? "" : n)
                }
                _handleInput(n) {
                    (!this._compositionMode || this._compositionMode && !this._composing) && this.onChange(n)
                }
                _compositionStart() {
                    this._composing = !0
                }
                _compositionEnd(n) {
                    this._composing = !1,
                    this._compositionMode && this.onChange(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(kn),_(wt),_(NF, 8))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["input", "formControlName", "", 3, "type", "checkbox"], ["textarea", "formControlName", ""], ["input", "formControl", "", 3, "type", "checkbox"], ["textarea", "formControl", ""], ["input", "ngModel", "", 3, "type", "checkbox"], ["textarea", "ngModel", ""], ["", "ngDefaultControl", ""]],
                hostBindings: function(n, r) {
                    1 & n && ie("input", function(o) {
                        return r._handleInput(o.target.value)
                    })("blur", function() {
                        return r.onTouched()
                    })("compositionstart", function() {
                        return r._compositionStart()
                    })("compositionend", function(o) {
                        return r._compositionEnd(o.target.value)
                    })
                },
                features: [me([RF]), ee]
            }),
            e
        }
        )();
        function nr(e) {
            return null == e || ("string" == typeof e || Array.isArray(e)) && 0 === e.length
        }
        function fD(e) {
            return null != e && "number" == typeof e.length
        }
        const Qe = new N("NgValidators")
          , rr = new N("NgAsyncValidators")
          , PF = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
        class ir {
            static min(t) {
                return function hD(e) {
                    return t => {
                        if (nr(t.value) || nr(e))
                            return null;
                        const n = parseFloat(t.value);
                        return !isNaN(n) && n < e ? {
                            min: {
                                min: e,
                                actual: t.value
                            }
                        } : null
                    }
                }(t)
            }
            static max(t) {
                return function pD(e) {
                    return t => {
                        if (nr(t.value) || nr(e))
                            return null;
                        const n = parseFloat(t.value);
                        return !isNaN(n) && n > e ? {
                            max: {
                                max: e,
                                actual: t.value
                            }
                        } : null
                    }
                }(t)
            }
            static required(t) {
                return function gD(e) {
                    return nr(e.value) ? {
                        required: !0
                    } : null
                }(t)
            }
            static requiredTrue(t) {
                return function mD(e) {
                    return !0 === e.value ? null : {
                        required: !0
                    }
                }(t)
            }
            static email(t) {
                return function vD(e) {
                    return nr(e.value) || PF.test(e.value) ? null : {
                        email: !0
                    }
                }(t)
            }
            static minLength(t) {
                return yD(t)
            }
            static maxLength(t) {
                return _D(t)
            }
            static pattern(t) {
                return DD(t)
            }
            static nullValidator(t) {
                return null
            }
            static compose(t) {
                return MD(t)
            }
            static composeAsync(t) {
                return ID(t)
            }
        }
        function yD(e) {
            return t => nr(t.value) || !fD(t.value) ? null : t.value.length < e ? {
                minlength: {
                    requiredLength: e,
                    actualLength: t.value.length
                }
            } : null
        }
        function _D(e) {
            return t => fD(t.value) && t.value.length > e ? {
                maxlength: {
                    requiredLength: e,
                    actualLength: t.value.length
                }
            } : null
        }
        function DD(e) {
            if (!e)
                return Oa;
            let t, n;
            return "string" == typeof e ? (n = "",
            "^" !== e.charAt(0) && (n += "^"),
            n += e,
            "$" !== e.charAt(e.length - 1) && (n += "$"),
            t = new RegExp(n)) : (n = e.toString(),
            t = e),
            r => {
                if (nr(r.value))
                    return null;
                const i = r.value;
                return t.test(i) ? null : {
                    pattern: {
                        requiredPattern: n,
                        actualValue: i
                    }
                }
            }
        }
        function Oa(e) {
            return null
        }
        function CD(e) {
            return null != e
        }
        function wD(e) {
            const t = mo(e) ? Pe(e) : e;
            return _c(t),
            t
        }
        function bD(e) {
            let t = {};
            return e.forEach(n => {
                t = null != n ? Object.assign(Object.assign({}, t), n) : t
            }
            ),
            0 === Object.keys(t).length ? null : t
        }
        function ED(e, t) {
            return t.map(n => n(e))
        }
        function SD(e) {
            return e.map(t => function OF(e) {
                return !e.validate
            }(t) ? t : n => t.validate(n))
        }
        function MD(e) {
            if (!e)
                return null;
            const t = e.filter(CD);
            return 0 == t.length ? null : function(n) {
                return bD(ED(n, t))
            }
        }
        function Rd(e) {
            return null != e ? MD(SD(e)) : null
        }
        function ID(e) {
            if (!e)
                return null;
            const t = e.filter(CD);
            return 0 == t.length ? null : function(n) {
                return function TF(...e) {
                    const t = Mh(e)
                      , {args: n, keys: r} = aD(e)
                      , i = new Me(o => {
                        const {length: s} = n;
                        if (!s)
                            return void o.complete();
                        const a = new Array(s);
                        let u = s
                          , l = s;
                        for (let c = 0; c < s; c++) {
                            let d = !1;
                            rn(n[c]).subscribe(je(o, f => {
                                d || (d = !0,
                                l--),
                                a[c] = f
                            }
                            , () => u--, void 0, () => {
                                (!u || !d) && (l || o.next(r ? lD(r, a) : a),
                                o.complete())
                            }
                            ))
                        }
                    }
                    );
                    return t ? i.pipe(uD(t)) : i
                }(ED(n, t).map(wD)).pipe(X(bD))
            }
        }
        function Fd(e) {
            return null != e ? ID(SD(e)) : null
        }
        function AD(e, t) {
            return null === e ? [t] : Array.isArray(e) ? [...e, t] : [e, t]
        }
        function TD(e) {
            return e._rawValidators
        }
        function xD(e) {
            return e._rawAsyncValidators
        }
        function Nd(e) {
            return e ? Array.isArray(e) ? e : [e] : []
        }
        function ka(e, t) {
            return Array.isArray(e) ? e.includes(t) : e === t
        }
        function RD(e, t) {
            const n = Nd(t);
            return Nd(e).forEach(i => {
                ka(n, i) || n.push(i)
            }
            ),
            n
        }
        function FD(e, t) {
            return Nd(t).filter(n => !ka(e, n))
        }
        class ND {
            constructor() {
                this._rawValidators = [],
                this._rawAsyncValidators = [],
                this._onDestroyCallbacks = []
            }
            get value() {
                return this.control ? this.control.value : null
            }
            get valid() {
                return this.control ? this.control.valid : null
            }
            get invalid() {
                return this.control ? this.control.invalid : null
            }
            get pending() {
                return this.control ? this.control.pending : null
            }
            get disabled() {
                return this.control ? this.control.disabled : null
            }
            get enabled() {
                return this.control ? this.control.enabled : null
            }
            get errors() {
                return this.control ? this.control.errors : null
            }
            get pristine() {
                return this.control ? this.control.pristine : null
            }
            get dirty() {
                return this.control ? this.control.dirty : null
            }
            get touched() {
                return this.control ? this.control.touched : null
            }
            get status() {
                return this.control ? this.control.status : null
            }
            get untouched() {
                return this.control ? this.control.untouched : null
            }
            get statusChanges() {
                return this.control ? this.control.statusChanges : null
            }
            get valueChanges() {
                return this.control ? this.control.valueChanges : null
            }
            get path() {
                return null
            }
            _setValidators(t) {
                this._rawValidators = t || [],
                this._composedValidatorFn = Rd(this._rawValidators)
            }
            _setAsyncValidators(t) {
                this._rawAsyncValidators = t || [],
                this._composedAsyncValidatorFn = Fd(this._rawAsyncValidators)
            }
            get validator() {
                return this._composedValidatorFn || null
            }
            get asyncValidator() {
                return this._composedAsyncValidatorFn || null
            }
            _registerOnDestroy(t) {
                this._onDestroyCallbacks.push(t)
            }
            _invokeOnDestroyCallbacks() {
                this._onDestroyCallbacks.forEach(t => t()),
                this._onDestroyCallbacks = []
            }
            reset(t) {
                this.control && this.control.reset(t)
            }
            hasError(t, n) {
                return !!this.control && this.control.hasError(t, n)
            }
            getError(t, n) {
                return this.control ? this.control.getError(t, n) : null
            }
        }
        class or extends ND {
            constructor() {
                super(...arguments),
                this._parent = null,
                this.name = null,
                this.valueAccessor = null
            }
        }
        class at extends ND {
            get formDirective() {
                return null
            }
            get path() {
                return null
            }
        }
        class PD {
            constructor(t) {
                this._cd = t
            }
            get isTouched() {
                var t, n;
                return !(null === (n = null === (t = this._cd) || void 0 === t ? void 0 : t.control) || void 0 === n || !n.touched)
            }
            get isUntouched() {
                var t, n;
                return !(null === (n = null === (t = this._cd) || void 0 === t ? void 0 : t.control) || void 0 === n || !n.untouched)
            }
            get isPristine() {
                var t, n;
                return !(null === (n = null === (t = this._cd) || void 0 === t ? void 0 : t.control) || void 0 === n || !n.pristine)
            }
            get isDirty() {
                var t, n;
                return !(null === (n = null === (t = this._cd) || void 0 === t ? void 0 : t.control) || void 0 === n || !n.dirty)
            }
            get isValid() {
                var t, n;
                return !(null === (n = null === (t = this._cd) || void 0 === t ? void 0 : t.control) || void 0 === n || !n.valid)
            }
            get isInvalid() {
                var t, n;
                return !(null === (n = null === (t = this._cd) || void 0 === t ? void 0 : t.control) || void 0 === n || !n.invalid)
            }
            get isPending() {
                var t, n;
                return !(null === (n = null === (t = this._cd) || void 0 === t ? void 0 : t.control) || void 0 === n || !n.pending)
            }
            get isSubmitted() {
                var t;
                return !(null === (t = this._cd) || void 0 === t || !t.submitted)
            }
        }
        let Pd = ( () => {
            class e extends PD {
                constructor(n) {
                    super(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(or, 2))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["", "formControlName", ""], ["", "ngModel", ""], ["", "formControl", ""]],
                hostVars: 14,
                hostBindings: function(n, r) {
                    2 & n && ta("ng-untouched", r.isUntouched)("ng-touched", r.isTouched)("ng-pristine", r.isPristine)("ng-dirty", r.isDirty)("ng-valid", r.isValid)("ng-invalid", r.isInvalid)("ng-pending", r.isPending)
                },
                features: [ee]
            }),
            e
        }
        )()
          , Od = ( () => {
            class e extends PD {
                constructor(n) {
                    super(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(at, 10))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["", "formGroupName", ""], ["", "formArrayName", ""], ["", "ngModelGroup", ""], ["", "formGroup", ""], ["form", 3, "ngNoForm", ""], ["", "ngForm", ""]],
                hostVars: 16,
                hostBindings: function(n, r) {
                    2 & n && ta("ng-untouched", r.isUntouched)("ng-touched", r.isTouched)("ng-pristine", r.isPristine)("ng-dirty", r.isDirty)("ng-valid", r.isValid)("ng-invalid", r.isInvalid)("ng-pending", r.isPending)("ng-submitted", r.isSubmitted)
                },
                features: [ee]
            }),
            e
        }
        )();
        const Vo = "VALID"
          , Va = "INVALID"
          , Mi = "PENDING"
          , jo = "DISABLED";
        function jd(e) {
            return (ja(e) ? e.validators : e) || null
        }
        function kD(e) {
            return Array.isArray(e) ? Rd(e) : e || null
        }
        function Bd(e, t) {
            return (ja(t) ? t.asyncValidators : e) || null
        }
        function LD(e) {
            return Array.isArray(e) ? Fd(e) : e || null
        }
        function ja(e) {
            return null != e && !Array.isArray(e) && "object" == typeof e
        }
        function VD(e, t, n) {
            const r = e.controls;
            if (!(t ? Object.keys(r) : r).length)
                throw new U(1e3,"");
            if (!r[n])
                throw new U(1001,"")
        }
        function jD(e, t, n) {
            e._forEachChild( (r, i) => {
                if (void 0 === n[i])
                    throw new U(1002,"")
            }
            )
        }
        class Ba {
            constructor(t, n) {
                this._pendingDirty = !1,
                this._hasOwnPendingAsyncValidator = !1,
                this._pendingTouched = !1,
                this._onCollectionChange = () => {}
                ,
                this._parent = null,
                this.pristine = !0,
                this.touched = !1,
                this._onDisabledChange = [],
                this._rawValidators = t,
                this._rawAsyncValidators = n,
                this._composedValidatorFn = kD(this._rawValidators),
                this._composedAsyncValidatorFn = LD(this._rawAsyncValidators)
            }
            get validator() {
                return this._composedValidatorFn
            }
            set validator(t) {
                this._rawValidators = this._composedValidatorFn = t
            }
            get asyncValidator() {
                return this._composedAsyncValidatorFn
            }
            set asyncValidator(t) {
                this._rawAsyncValidators = this._composedAsyncValidatorFn = t
            }
            get parent() {
                return this._parent
            }
            get valid() {
                return this.status === Vo
            }
            get invalid() {
                return this.status === Va
            }
            get pending() {
                return this.status == Mi
            }
            get disabled() {
                return this.status === jo
            }
            get enabled() {
                return this.status !== jo
            }
            get dirty() {
                return !this.pristine
            }
            get untouched() {
                return !this.touched
            }
            get updateOn() {
                return this._updateOn ? this._updateOn : this.parent ? this.parent.updateOn : "change"
            }
            setValidators(t) {
                this._rawValidators = t,
                this._composedValidatorFn = kD(t)
            }
            setAsyncValidators(t) {
                this._rawAsyncValidators = t,
                this._composedAsyncValidatorFn = LD(t)
            }
            addValidators(t) {
                this.setValidators(RD(t, this._rawValidators))
            }
            addAsyncValidators(t) {
                this.setAsyncValidators(RD(t, this._rawAsyncValidators))
            }
            removeValidators(t) {
                this.setValidators(FD(t, this._rawValidators))
            }
            removeAsyncValidators(t) {
                this.setAsyncValidators(FD(t, this._rawAsyncValidators))
            }
            hasValidator(t) {
                return ka(this._rawValidators, t)
            }
            hasAsyncValidator(t) {
                return ka(this._rawAsyncValidators, t)
            }
            clearValidators() {
                this.validator = null
            }
            clearAsyncValidators() {
                this.asyncValidator = null
            }
            markAsTouched(t={}) {
                this.touched = !0,
                this._parent && !t.onlySelf && this._parent.markAsTouched(t)
            }
            markAllAsTouched() {
                this.markAsTouched({
                    onlySelf: !0
                }),
                this._forEachChild(t => t.markAllAsTouched())
            }
            markAsUntouched(t={}) {
                this.touched = !1,
                this._pendingTouched = !1,
                this._forEachChild(n => {
                    n.markAsUntouched({
                        onlySelf: !0
                    })
                }
                ),
                this._parent && !t.onlySelf && this._parent._updateTouched(t)
            }
            markAsDirty(t={}) {
                this.pristine = !1,
                this._parent && !t.onlySelf && this._parent.markAsDirty(t)
            }
            markAsPristine(t={}) {
                this.pristine = !0,
                this._pendingDirty = !1,
                this._forEachChild(n => {
                    n.markAsPristine({
                        onlySelf: !0
                    })
                }
                ),
                this._parent && !t.onlySelf && this._parent._updatePristine(t)
            }
            markAsPending(t={}) {
                this.status = Mi,
                !1 !== t.emitEvent && this.statusChanges.emit(this.status),
                this._parent && !t.onlySelf && this._parent.markAsPending(t)
            }
            disable(t={}) {
                const n = this._parentMarkedDirty(t.onlySelf);
                this.status = jo,
                this.errors = null,
                this._forEachChild(r => {
                    r.disable(Object.assign(Object.assign({}, t), {
                        onlySelf: !0
                    }))
                }
                ),
                this._updateValue(),
                !1 !== t.emitEvent && (this.valueChanges.emit(this.value),
                this.statusChanges.emit(this.status)),
                this._updateAncestors(Object.assign(Object.assign({}, t), {
                    skipPristineCheck: n
                })),
                this._onDisabledChange.forEach(r => r(!0))
            }
            enable(t={}) {
                const n = this._parentMarkedDirty(t.onlySelf);
                this.status = Vo,
                this._forEachChild(r => {
                    r.enable(Object.assign(Object.assign({}, t), {
                        onlySelf: !0
                    }))
                }
                ),
                this.updateValueAndValidity({
                    onlySelf: !0,
                    emitEvent: t.emitEvent
                }),
                this._updateAncestors(Object.assign(Object.assign({}, t), {
                    skipPristineCheck: n
                })),
                this._onDisabledChange.forEach(r => r(!1))
            }
            _updateAncestors(t) {
                this._parent && !t.onlySelf && (this._parent.updateValueAndValidity(t),
                t.skipPristineCheck || this._parent._updatePristine(),
                this._parent._updateTouched())
            }
            setParent(t) {
                this._parent = t
            }
            getRawValue() {
                return this.value
            }
            updateValueAndValidity(t={}) {
                this._setInitialStatus(),
                this._updateValue(),
                this.enabled && (this._cancelExistingSubscription(),
                this.errors = this._runValidator(),
                this.status = this._calculateStatus(),
                (this.status === Vo || this.status === Mi) && this._runAsyncValidator(t.emitEvent)),
                !1 !== t.emitEvent && (this.valueChanges.emit(this.value),
                this.statusChanges.emit(this.status)),
                this._parent && !t.onlySelf && this._parent.updateValueAndValidity(t)
            }
            _updateTreeValidity(t={
                emitEvent: !0
            }) {
                this._forEachChild(n => n._updateTreeValidity(t)),
                this.updateValueAndValidity({
                    onlySelf: !0,
                    emitEvent: t.emitEvent
                })
            }
            _setInitialStatus() {
                this.status = this._allControlsDisabled() ? jo : Vo
            }
            _runValidator() {
                return this.validator ? this.validator(this) : null
            }
            _runAsyncValidator(t) {
                if (this.asyncValidator) {
                    this.status = Mi,
                    this._hasOwnPendingAsyncValidator = !0;
                    const n = wD(this.asyncValidator(this));
                    this._asyncValidationSubscription = n.subscribe(r => {
                        this._hasOwnPendingAsyncValidator = !1,
                        this.setErrors(r, {
                            emitEvent: t
                        })
                    }
                    )
                }
            }
            _cancelExistingSubscription() {
                this._asyncValidationSubscription && (this._asyncValidationSubscription.unsubscribe(),
                this._hasOwnPendingAsyncValidator = !1)
            }
            setErrors(t, n={}) {
                this.errors = t,
                this._updateControlsErrors(!1 !== n.emitEvent)
            }
            get(t) {
                let n = t;
                return null == n || (Array.isArray(n) || (n = n.split(".")),
                0 === n.length) ? null : n.reduce( (r, i) => r && r._find(i), this)
            }
            getError(t, n) {
                const r = n ? this.get(n) : this;
                return r && r.errors ? r.errors[t] : null
            }
            hasError(t, n) {
                return !!this.getError(t, n)
            }
            get root() {
                let t = this;
                for (; t._parent; )
                    t = t._parent;
                return t
            }
            _updateControlsErrors(t) {
                this.status = this._calculateStatus(),
                t && this.statusChanges.emit(this.status),
                this._parent && this._parent._updateControlsErrors(t)
            }
            _initObservables() {
                this.valueChanges = new Ee,
                this.statusChanges = new Ee
            }
            _calculateStatus() {
                return this._allControlsDisabled() ? jo : this.errors ? Va : this._hasOwnPendingAsyncValidator || this._anyControlsHaveStatus(Mi) ? Mi : this._anyControlsHaveStatus(Va) ? Va : Vo
            }
            _anyControlsHaveStatus(t) {
                return this._anyControls(n => n.status === t)
            }
            _anyControlsDirty() {
                return this._anyControls(t => t.dirty)
            }
            _anyControlsTouched() {
                return this._anyControls(t => t.touched)
            }
            _updatePristine(t={}) {
                this.pristine = !this._anyControlsDirty(),
                this._parent && !t.onlySelf && this._parent._updatePristine(t)
            }
            _updateTouched(t={}) {
                this.touched = this._anyControlsTouched(),
                this._parent && !t.onlySelf && this._parent._updateTouched(t)
            }
            _registerOnCollectionChange(t) {
                this._onCollectionChange = t
            }
            _setUpdateStrategy(t) {
                ja(t) && null != t.updateOn && (this._updateOn = t.updateOn)
            }
            _parentMarkedDirty(t) {
                return !t && !(!this._parent || !this._parent.dirty) && !this._parent._anyControlsDirty()
            }
            _find(t) {
                return null
            }
        }
        class Ii extends Ba {
            constructor(t, n, r) {
                super(jd(n), Bd(r, n)),
                this.controls = t,
                this._initObservables(),
                this._setUpdateStrategy(n),
                this._setUpControls(),
                this.updateValueAndValidity({
                    onlySelf: !0,
                    emitEvent: !!this.asyncValidator
                })
            }
            registerControl(t, n) {
                return this.controls[t] ? this.controls[t] : (this.controls[t] = n,
                n.setParent(this),
                n._registerOnCollectionChange(this._onCollectionChange),
                n)
            }
            addControl(t, n, r={}) {
                this.registerControl(t, n),
                this.updateValueAndValidity({
                    emitEvent: r.emitEvent
                }),
                this._onCollectionChange()
            }
            removeControl(t, n={}) {
                this.controls[t] && this.controls[t]._registerOnCollectionChange( () => {}
                ),
                delete this.controls[t],
                this.updateValueAndValidity({
                    emitEvent: n.emitEvent
                }),
                this._onCollectionChange()
            }
            setControl(t, n, r={}) {
                this.controls[t] && this.controls[t]._registerOnCollectionChange( () => {}
                ),
                delete this.controls[t],
                n && this.registerControl(t, n),
                this.updateValueAndValidity({
                    emitEvent: r.emitEvent
                }),
                this._onCollectionChange()
            }
            contains(t) {
                return this.controls.hasOwnProperty(t) && this.controls[t].enabled
            }
            setValue(t, n={}) {
                jD(this, 0, t),
                Object.keys(t).forEach(r => {
                    VD(this, !0, r),
                    this.controls[r].setValue(t[r], {
                        onlySelf: !0,
                        emitEvent: n.emitEvent
                    })
                }
                ),
                this.updateValueAndValidity(n)
            }
            patchValue(t, n={}) {
                null != t && (Object.keys(t).forEach(r => {
                    const i = this.controls[r];
                    i && i.patchValue(t[r], {
                        onlySelf: !0,
                        emitEvent: n.emitEvent
                    })
                }
                ),
                this.updateValueAndValidity(n))
            }
            reset(t={}, n={}) {
                this._forEachChild( (r, i) => {
                    r.reset(t[i], {
                        onlySelf: !0,
                        emitEvent: n.emitEvent
                    })
                }
                ),
                this._updatePristine(n),
                this._updateTouched(n),
                this.updateValueAndValidity(n)
            }
            getRawValue() {
                return this._reduceChildren({}, (t, n, r) => (t[r] = n.getRawValue(),
                t))
            }
            _syncPendingControls() {
                let t = this._reduceChildren(!1, (n, r) => !!r._syncPendingControls() || n);
                return t && this.updateValueAndValidity({
                    onlySelf: !0
                }),
                t
            }
            _forEachChild(t) {
                Object.keys(this.controls).forEach(n => {
                    const r = this.controls[n];
                    r && t(r, n)
                }
                )
            }
            _setUpControls() {
                this._forEachChild(t => {
                    t.setParent(this),
                    t._registerOnCollectionChange(this._onCollectionChange)
                }
                )
            }
            _updateValue() {
                this.value = this._reduceValue()
            }
            _anyControls(t) {
                for (const [n,r] of Object.entries(this.controls))
                    if (this.contains(n) && t(r))
                        return !0;
                return !1
            }
            _reduceValue() {
                return this._reduceChildren({}, (n, r, i) => ((r.enabled || this.disabled) && (n[i] = r.value),
                n))
            }
            _reduceChildren(t, n) {
                let r = t;
                return this._forEachChild( (i, o) => {
                    r = n(r, i, o)
                }
                ),
                r
            }
            _allControlsDisabled() {
                for (const t of Object.keys(this.controls))
                    if (this.controls[t].enabled)
                        return !1;
                return Object.keys(this.controls).length > 0 || this.disabled
            }
            _find(t) {
                return this.controls.hasOwnProperty(t) ? this.controls[t] : null
            }
        }
        function Bo(e, t) {
            var n, r;
            Hd(e, t),
            t.valueAccessor.writeValue(e.value),
            e.disabled && (null === (r = (n = t.valueAccessor).setDisabledState) || void 0 === r || r.call(n, !0)),
            function GF(e, t) {
                t.valueAccessor.registerOnChange(n => {
                    e._pendingValue = n,
                    e._pendingChange = !0,
                    e._pendingDirty = !0,
                    "change" === e.updateOn && BD(e, t)
                }
                )
            }(e, t),
            function WF(e, t) {
                const n = (r, i) => {
                    t.valueAccessor.writeValue(r),
                    i && t.viewToModelUpdate(r)
                }
                ;
                e.registerOnChange(n),
                t._registerOnDestroy( () => {
                    e._unregisterOnChange(n)
                }
                )
            }(e, t),
            function qF(e, t) {
                t.valueAccessor.registerOnTouched( () => {
                    e._pendingTouched = !0,
                    "blur" === e.updateOn && e._pendingChange && BD(e, t),
                    "submit" !== e.updateOn && e.markAsTouched()
                }
                )
            }(e, t),
            function $F(e, t) {
                if (t.valueAccessor.setDisabledState) {
                    const n = r => {
                        t.valueAccessor.setDisabledState(r)
                    }
                    ;
                    e.registerOnDisabledChange(n),
                    t._registerOnDestroy( () => {
                        e._unregisterOnDisabledChange(n)
                    }
                    )
                }
            }(e, t)
        }
        function Ua(e, t, n=!0) {
            const r = () => {}
            ;
            t.valueAccessor && (t.valueAccessor.registerOnChange(r),
            t.valueAccessor.registerOnTouched(r)),
            Ga(e, t),
            e && (t._invokeOnDestroyCallbacks(),
            e._registerOnCollectionChange( () => {}
            ))
        }
        function $a(e, t) {
            e.forEach(n => {
                n.registerOnValidatorChange && n.registerOnValidatorChange(t)
            }
            )
        }
        function Hd(e, t) {
            const n = TD(e);
            null !== t.validator ? e.setValidators(AD(n, t.validator)) : "function" == typeof n && e.setValidators([n]);
            const r = xD(e);
            null !== t.asyncValidator ? e.setAsyncValidators(AD(r, t.asyncValidator)) : "function" == typeof r && e.setAsyncValidators([r]);
            const i = () => e.updateValueAndValidity();
            $a(t._rawValidators, i),
            $a(t._rawAsyncValidators, i)
        }
        function Ga(e, t) {
            let n = !1;
            if (null !== e) {
                if (null !== t.validator) {
                    const i = TD(e);
                    if (Array.isArray(i) && i.length > 0) {
                        const o = i.filter(s => s !== t.validator);
                        o.length !== i.length && (n = !0,
                        e.setValidators(o))
                    }
                }
                if (null !== t.asyncValidator) {
                    const i = xD(e);
                    if (Array.isArray(i) && i.length > 0) {
                        const o = i.filter(s => s !== t.asyncValidator);
                        o.length !== i.length && (n = !0,
                        e.setAsyncValidators(o))
                    }
                }
            }
            const r = () => {}
            ;
            return $a(t._rawValidators, r),
            $a(t._rawAsyncValidators, r),
            n
        }
        function BD(e, t) {
            e._pendingDirty && e.markAsDirty(),
            e.setValue(e._pendingValue, {
                emitModelToViewChange: !1
            }),
            t.viewToModelUpdate(e._pendingValue),
            e._pendingChange = !1
        }
        function GD(e, t) {
            const n = e.indexOf(t);
            n > -1 && e.splice(n, 1)
        }
        function qD(e) {
            return "object" == typeof e && null !== e && 2 === Object.keys(e).length && "value"in e && "disabled"in e
        }
        const Nt = class extends Ba {
            constructor(t=null, n, r) {
                super(jd(n), Bd(r, n)),
                this.defaultValue = null,
                this._onChange = [],
                this._pendingChange = !1,
                this._applyFormState(t),
                this._setUpdateStrategy(n),
                this._initObservables(),
                this.updateValueAndValidity({
                    onlySelf: !0,
                    emitEvent: !!this.asyncValidator
                }),
                ja(n) && (n.nonNullable || n.initialValueIsDefault) && (this.defaultValue = qD(t) ? t.value : t)
            }
            setValue(t, n={}) {
                this.value = this._pendingValue = t,
                this._onChange.length && !1 !== n.emitModelToViewChange && this._onChange.forEach(r => r(this.value, !1 !== n.emitViewToModelChange)),
                this.updateValueAndValidity(n)
            }
            patchValue(t, n={}) {
                this.setValue(t, n)
            }
            reset(t=this.defaultValue, n={}) {
                this._applyFormState(t),
                this.markAsPristine(n),
                this.markAsUntouched(n),
                this.setValue(this.value, n),
                this._pendingChange = !1
            }
            _updateValue() {}
            _anyControls(t) {
                return !1
            }
            _allControlsDisabled() {
                return this.disabled
            }
            registerOnChange(t) {
                this._onChange.push(t)
            }
            _unregisterOnChange(t) {
                GD(this._onChange, t)
            }
            registerOnDisabledChange(t) {
                this._onDisabledChange.push(t)
            }
            _unregisterOnDisabledChange(t) {
                GD(this._onDisabledChange, t)
            }
            _forEachChild(t) {}
            _syncPendingControls() {
                return !("submit" !== this.updateOn || (this._pendingDirty && this.markAsDirty(),
                this._pendingTouched && this.markAsTouched(),
                !this._pendingChange) || (this.setValue(this._pendingValue, {
                    onlySelf: !0,
                    emitModelToViewChange: !1
                }),
                0))
            }
            _applyFormState(t) {
                qD(t) ? (this.value = this._pendingValue = t.value,
                t.disabled ? this.disable({
                    onlySelf: !0,
                    emitEvent: !1
                }) : this.enable({
                    onlySelf: !0,
                    emitEvent: !1
                })) : this.value = this._pendingValue = t
            }
        }
        ;
        let qd = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["form", 3, "ngNoForm", "", 3, "ngNativeValidate", ""]],
                hostAttrs: ["novalidate", ""]
            }),
            e
        }
        )();
        const nN = {
            provide: Cn,
            useExisting: de( () => qa),
            multi: !0
        };
        let QD = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({}),
            e
        }
        )()
          , rN = ( () => {
            class e {
                constructor() {
                    this._accessors = []
                }
                add(n, r) {
                    this._accessors.push([n, r])
                }
                remove(n) {
                    for (let r = this._accessors.length - 1; r >= 0; --r)
                        if (this._accessors[r][1] === n)
                            return void this._accessors.splice(r, 1)
                }
                select(n) {
                    this._accessors.forEach(r => {
                        this._isSameGroup(r, n) && r[1] !== n && r[1].fireUncheck(n.value)
                    }
                    )
                }
                _isSameGroup(n, r) {
                    return !!n[0].control && n[0]._parent === r._control._parent && n[1].name === r.name
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: QD
            }),
            e
        }
        )()
          , qa = ( () => {
            class e extends Ir {
                constructor(n, r, i, o) {
                    super(n, r),
                    this._registry = i,
                    this._injector = o,
                    this.onChange = () => {}
                }
                ngOnInit() {
                    this._control = this._injector.get(or),
                    this._checkName(),
                    this._registry.add(this._control, this)
                }
                ngOnDestroy() {
                    this._registry.remove(this)
                }
                writeValue(n) {
                    this._state = n === this.value,
                    this.setProperty("checked", this._state)
                }
                registerOnChange(n) {
                    this._fn = n,
                    this.onChange = () => {
                        n(this.value),
                        this._registry.select(this)
                    }
                }
                fireUncheck(n) {
                    this.writeValue(n)
                }
                _checkName() {
                    !this.name && this.formControlName && (this.name = this.formControlName)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(kn),_(wt),_(rN),_(Ye))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["input", "type", "radio", "formControlName", ""], ["input", "type", "radio", "formControl", ""], ["input", "type", "radio", "ngModel", ""]],
                hostBindings: function(n, r) {
                    1 & n && ie("change", function() {
                        return r.onChange()
                    })("blur", function() {
                        return r.onTouched()
                    })
                },
                inputs: {
                    name: "name",
                    formControlName: "formControlName",
                    value: "value"
                },
                features: [me([nN]), ee]
            }),
            e
        }
        )();
        const Wd = new N("NgModelWithFormControlWarning")
          , sN = {
            provide: at,
            useExisting: de( () => Uo)
        };
        let Uo = ( () => {
            class e extends at {
                constructor(n, r) {
                    super(),
                    this.validators = n,
                    this.asyncValidators = r,
                    this.submitted = !1,
                    this._onCollectionChange = () => this._updateDomValue(),
                    this.directives = [],
                    this.form = null,
                    this.ngSubmit = new Ee,
                    this._setValidators(n),
                    this._setAsyncValidators(r)
                }
                ngOnChanges(n) {
                    this._checkFormPresent(),
                    n.hasOwnProperty("form") && (this._updateValidators(),
                    this._updateDomValue(),
                    this._updateRegistrations(),
                    this._oldForm = this.form)
                }
                ngOnDestroy() {
                    this.form && (Ga(this.form, this),
                    this.form._onCollectionChange === this._onCollectionChange && this.form._registerOnCollectionChange( () => {}
                    ))
                }
                get formDirective() {
                    return this
                }
                get control() {
                    return this.form
                }
                get path() {
                    return []
                }
                addControl(n) {
                    const r = this.form.get(n.path);
                    return Bo(r, n),
                    r.updateValueAndValidity({
                        emitEvent: !1
                    }),
                    this.directives.push(n),
                    r
                }
                getControl(n) {
                    return this.form.get(n.path)
                }
                removeControl(n) {
                    Ua(n.control || null, n, !1),
                    function JF(e, t) {
                        const n = e.indexOf(t);
                        n > -1 && e.splice(n, 1)
                    }(this.directives, n)
                }
                addFormGroup(n) {
                    this._setUpFormContainer(n)
                }
                removeFormGroup(n) {
                    this._cleanUpFormContainer(n)
                }
                getFormGroup(n) {
                    return this.form.get(n.path)
                }
                addFormArray(n) {
                    this._setUpFormContainer(n)
                }
                removeFormArray(n) {
                    this._cleanUpFormContainer(n)
                }
                getFormArray(n) {
                    return this.form.get(n.path)
                }
                updateModel(n, r) {
                    this.form.get(n.path).setValue(r)
                }
                onSubmit(n) {
                    return this.submitted = !0,
                    function $D(e, t) {
                        e._syncPendingControls(),
                        t.forEach(n => {
                            const r = n.control;
                            "submit" === r.updateOn && r._pendingChange && (n.viewToModelUpdate(r._pendingValue),
                            r._pendingChange = !1)
                        }
                        )
                    }(this.form, this.directives),
                    this.ngSubmit.emit(n),
                    !1
                }
                onReset() {
                    this.resetForm()
                }
                resetForm(n) {
                    this.form.reset(n),
                    this.submitted = !1
                }
                _updateDomValue() {
                    this.directives.forEach(n => {
                        const r = n.control
                          , i = this.form.get(n.path);
                        r !== i && (Ua(r || null, n),
                        (e => e instanceof Nt)(i) && (Bo(i, n),
                        n.control = i))
                    }
                    ),
                    this.form._updateTreeValidity({
                        emitEvent: !1
                    })
                }
                _setUpFormContainer(n) {
                    const r = this.form.get(n.path);
                    (function HD(e, t) {
                        Hd(e, t)
                    }
                    )(r, n),
                    r.updateValueAndValidity({
                        emitEvent: !1
                    })
                }
                _cleanUpFormContainer(n) {
                    if (this.form) {
                        const r = this.form.get(n.path);
                        r && function zF(e, t) {
                            return Ga(e, t)
                        }(r, n) && r.updateValueAndValidity({
                            emitEvent: !1
                        })
                    }
                }
                _updateRegistrations() {
                    this.form._registerOnCollectionChange(this._onCollectionChange),
                    this._oldForm && this._oldForm._registerOnCollectionChange( () => {}
                    )
                }
                _updateValidators() {
                    Hd(this.form, this),
                    this._oldForm && Ga(this._oldForm, this)
                }
                _checkFormPresent() {}
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(Qe, 10),_(rr, 10))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["", "formGroup", ""]],
                hostBindings: function(n, r) {
                    1 & n && ie("submit", function(o) {
                        return r.onSubmit(o)
                    })("reset", function() {
                        return r.onReset()
                    })
                },
                inputs: {
                    form: ["formGroup", "form"]
                },
                outputs: {
                    ngSubmit: "ngSubmit"
                },
                exportAs: ["ngForm"],
                features: [me([sN]), ee, It]
            }),
            e
        }
        )();
        const lN = {
            provide: or,
            useExisting: de( () => Wa)
        };
        let Wa = ( () => {
            class e extends or {
                constructor(n, r, i, o, s) {
                    super(),
                    this._ngModelWarningConfig = s,
                    this._added = !1,
                    this.update = new Ee,
                    this._ngModelWarningSent = !1,
                    this._parent = n,
                    this._setValidators(r),
                    this._setAsyncValidators(i),
                    this.valueAccessor = function $d(e, t) {
                        if (!t)
                            return null;
                        let n, r, i;
                        return Array.isArray(t),
                        t.forEach(o => {
                            o.constructor === Lo ? n = o : function YF(e) {
                                return Object.getPrototypeOf(e.constructor) === Ir
                            }(o) ? r = o : i = o
                        }
                        ),
                        i || r || n || null
                    }(0, o)
                }
                set isDisabled(n) {}
                ngOnChanges(n) {
                    this._added || this._setUpControl(),
                    function Ud(e, t) {
                        if (!e.hasOwnProperty("model"))
                            return !1;
                        const n = e.model;
                        return !!n.isFirstChange() || !Object.is(t, n.currentValue)
                    }(n, this.viewModel) && (this.viewModel = this.model,
                    this.formDirective.updateModel(this, this.model))
                }
                ngOnDestroy() {
                    this.formDirective && this.formDirective.removeControl(this)
                }
                viewToModelUpdate(n) {
                    this.viewModel = n,
                    this.update.emit(n)
                }
                get path() {
                    return function Ha(e, t) {
                        return [...t.path, e]
                    }(null == this.name ? this.name : this.name.toString(), this._parent)
                }
                get formDirective() {
                    return this._parent ? this._parent.formDirective : null
                }
                _checkParentType() {}
                _setUpControl() {
                    this._checkParentType(),
                    this.control = this.formDirective.addControl(this),
                    this._added = !0
                }
            }
            return e._ngModelWarningSentOnce = !1,
            e.\u0275fac = function(n) {
                return new (n || e)(_(at, 13),_(Qe, 10),_(rr, 10),_(Cn, 10),_(Wd, 8))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["", "formControlName", ""]],
                inputs: {
                    name: ["formControlName", "name"],
                    isDisabled: ["disabled", "isDisabled"],
                    model: ["ngModel", "model"]
                },
                outputs: {
                    update: "ngModelChange"
                },
                features: [me([lN]), ee, It]
            }),
            e
        }
        )();
        function rC(e) {
            return "number" == typeof e ? e : parseInt(e, 10)
        }
        let Ar = ( () => {
            class e {
                constructor() {
                    this._validator = Oa
                }
                ngOnChanges(n) {
                    if (this.inputName in n) {
                        const r = this.normalizeInput(n[this.inputName].currentValue);
                        this._enabled = this.enabled(r),
                        this._validator = this._enabled ? this.createValidator(r) : Oa,
                        this._onChange && this._onChange()
                    }
                }
                validate(n) {
                    return this._validator(n)
                }
                registerOnValidatorChange(n) {
                    this._onChange = n
                }
                enabled(n) {
                    return null != n
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275dir = R({
                type: e,
                features: [It]
            }),
            e
        }
        )();
        const CN = {
            provide: Qe,
            useExisting: de( () => Xd),
            multi: !0
        };
        let Xd = ( () => {
            class e extends Ar {
                constructor() {
                    super(...arguments),
                    this.inputName = "minlength",
                    this.normalizeInput = n => rC(n),
                    this.createValidator = n => yD(n)
                }
            }
            return e.\u0275fac = function() {
                let t;
                return function(r) {
                    return (t || (t = $e(e)))(r || e)
                }
            }(),
            e.\u0275dir = R({
                type: e,
                selectors: [["", "minlength", "", "formControlName", ""], ["", "minlength", "", "formControl", ""], ["", "minlength", "", "ngModel", ""]],
                hostVars: 1,
                hostBindings: function(n, r) {
                    2 & n && pn("minlength", r._enabled ? r.minlength : null)
                },
                inputs: {
                    minlength: "minlength"
                },
                features: [me([CN]), ee]
            }),
            e
        }
        )();
        const wN = {
            provide: Qe,
            useExisting: de( () => Kd),
            multi: !0
        };
        let Kd = ( () => {
            class e extends Ar {
                constructor() {
                    super(...arguments),
                    this.inputName = "maxlength",
                    this.normalizeInput = n => rC(n),
                    this.createValidator = n => _D(n)
                }
            }
            return e.\u0275fac = function() {
                let t;
                return function(r) {
                    return (t || (t = $e(e)))(r || e)
                }
            }(),
            e.\u0275dir = R({
                type: e,
                selectors: [["", "maxlength", "", "formControlName", ""], ["", "maxlength", "", "formControl", ""], ["", "maxlength", "", "ngModel", ""]],
                hostVars: 1,
                hostBindings: function(n, r) {
                    2 & n && pn("maxlength", r._enabled ? r.maxlength : null)
                },
                inputs: {
                    maxlength: "maxlength"
                },
                features: [me([wN]), ee]
            }),
            e
        }
        )();
        const bN = {
            provide: Qe,
            useExisting: de( () => ef),
            multi: !0
        };
        let ef = ( () => {
            class e extends Ar {
                constructor() {
                    super(...arguments),
                    this.inputName = "pattern",
                    this.normalizeInput = n => n,
                    this.createValidator = n => DD(n)
                }
            }
            return e.\u0275fac = function() {
                let t;
                return function(r) {
                    return (t || (t = $e(e)))(r || e)
                }
            }(),
            e.\u0275dir = R({
                type: e,
                selectors: [["", "pattern", "", "formControlName", ""], ["", "pattern", "", "formControl", ""], ["", "pattern", "", "ngModel", ""]],
                hostVars: 1,
                hostBindings: function(n, r) {
                    2 & n && pn("pattern", r._enabled ? r.pattern : null)
                },
                inputs: {
                    pattern: "pattern"
                },
                features: [me([bN]), ee]
            }),
            e
        }
        )()
          , lC = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({
                imports: [QD]
            }),
            e
        }
        )()
          , EN = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({
                imports: [lC]
            }),
            e
        }
        )()
          , cC = ( () => {
            class e {
                static withConfig(n) {
                    return {
                        ngModule: e,
                        providers: [{
                            provide: Wd,
                            useValue: n.warnOnNgModelWithFormControl
                        }]
                    }
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({
                imports: [lC]
            }),
            e
        }
        )();
        class dC extends Ba {
            constructor(t, n, r) {
                super(jd(n), Bd(r, n)),
                this.controls = t,
                this._initObservables(),
                this._setUpdateStrategy(n),
                this._setUpControls(),
                this.updateValueAndValidity({
                    onlySelf: !0,
                    emitEvent: !!this.asyncValidator
                })
            }
            at(t) {
                return this.controls[this._adjustIndex(t)]
            }
            push(t, n={}) {
                this.controls.push(t),
                this._registerControl(t),
                this.updateValueAndValidity({
                    emitEvent: n.emitEvent
                }),
                this._onCollectionChange()
            }
            insert(t, n, r={}) {
                this.controls.splice(t, 0, n),
                this._registerControl(n),
                this.updateValueAndValidity({
                    emitEvent: r.emitEvent
                })
            }
            removeAt(t, n={}) {
                let r = this._adjustIndex(t);
                r < 0 && (r = 0),
                this.controls[r] && this.controls[r]._registerOnCollectionChange( () => {}
                ),
                this.controls.splice(r, 1),
                this.updateValueAndValidity({
                    emitEvent: n.emitEvent
                })
            }
            setControl(t, n, r={}) {
                let i = this._adjustIndex(t);
                i < 0 && (i = 0),
                this.controls[i] && this.controls[i]._registerOnCollectionChange( () => {}
                ),
                this.controls.splice(i, 1),
                n && (this.controls.splice(i, 0, n),
                this._registerControl(n)),
                this.updateValueAndValidity({
                    emitEvent: r.emitEvent
                }),
                this._onCollectionChange()
            }
            get length() {
                return this.controls.length
            }
            setValue(t, n={}) {
                jD(this, 0, t),
                t.forEach( (r, i) => {
                    VD(this, !1, i),
                    this.at(i).setValue(r, {
                        onlySelf: !0,
                        emitEvent: n.emitEvent
                    })
                }
                ),
                this.updateValueAndValidity(n)
            }
            patchValue(t, n={}) {
                null != t && (t.forEach( (r, i) => {
                    this.at(i) && this.at(i).patchValue(r, {
                        onlySelf: !0,
                        emitEvent: n.emitEvent
                    })
                }
                ),
                this.updateValueAndValidity(n))
            }
            reset(t=[], n={}) {
                this._forEachChild( (r, i) => {
                    r.reset(t[i], {
                        onlySelf: !0,
                        emitEvent: n.emitEvent
                    })
                }
                ),
                this._updatePristine(n),
                this._updateTouched(n),
                this.updateValueAndValidity(n)
            }
            getRawValue() {
                return this.controls.map(t => t.getRawValue())
            }
            clear(t={}) {
                this.controls.length < 1 || (this._forEachChild(n => n._registerOnCollectionChange( () => {}
                )),
                this.controls.splice(0),
                this.updateValueAndValidity({
                    emitEvent: t.emitEvent
                }))
            }
            _adjustIndex(t) {
                return t < 0 ? t + this.length : t
            }
            _syncPendingControls() {
                let t = this.controls.reduce( (n, r) => !!r._syncPendingControls() || n, !1);
                return t && this.updateValueAndValidity({
                    onlySelf: !0
                }),
                t
            }
            _forEachChild(t) {
                this.controls.forEach( (n, r) => {
                    t(n, r)
                }
                )
            }
            _updateValue() {
                this.value = this.controls.filter(t => t.enabled || this.disabled).map(t => t.value)
            }
            _anyControls(t) {
                return this.controls.some(n => n.enabled && t(n))
            }
            _setUpControls() {
                this._forEachChild(t => this._registerControl(t))
            }
            _allControlsDisabled() {
                for (const t of this.controls)
                    if (t.enabled)
                        return !1;
                return this.controls.length > 0 || this.disabled
            }
            _registerControl(t) {
                t.setParent(this),
                t._registerOnCollectionChange(this._onCollectionChange)
            }
            _find(t) {
                var n;
                return null !== (n = this.at(t)) && void 0 !== n ? n : null
            }
        }
        function tf(e) {
            return !!e && (void 0 !== e.asyncValidators || void 0 !== e.validators || void 0 !== e.updateOn)
        }
        let fC = ( () => {
            class e {
                constructor() {
                    this.useNonNullable = !1
                }
                get nonNullable() {
                    const n = new e;
                    return n.useNonNullable = !0,
                    n
                }
                group(n, r=null) {
                    const i = this._reduceControls(n);
                    let a, o = null, s = null;
                    return null !== r && (tf(r) ? (o = null != r.validators ? r.validators : null,
                    s = null != r.asyncValidators ? r.asyncValidators : null,
                    a = null != r.updateOn ? r.updateOn : void 0) : (o = null != r.validator ? r.validator : null,
                    s = null != r.asyncValidator ? r.asyncValidator : null)),
                    new Ii(i,{
                        asyncValidators: s,
                        updateOn: a,
                        validators: o
                    })
                }
                control(n, r, i) {
                    let o = {};
                    return this.useNonNullable ? (tf(r) ? o = r : (o.validators = r,
                    o.asyncValidators = i),
                    new Nt(n,Object.assign(Object.assign({}, o), {
                        nonNullable: !0
                    }))) : new Nt(n,r,i)
                }
                array(n, r, i) {
                    const o = n.map(s => this._createControl(s));
                    return new dC(o,r,i)
                }
                _reduceControls(n) {
                    const r = {};
                    return Object.keys(n).forEach(i => {
                        r[i] = this._createControl(n[i])
                    }
                    ),
                    r
                }
                _createControl(n) {
                    return n instanceof Nt || n instanceof Ba ? n : Array.isArray(n) ? this.control(n[0], n.length > 1 ? n[1] : null, n.length > 2 ? n[2] : null) : this.control(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: cC
            }),
            e
        }
        )();
        function V(...e) {
            return Pe(e, Vi(e))
        }
        function Ai(e, t) {
            return ce(t) ? Ue(e, t, 1) : Ue(e, 1)
        }
        function Tr(e, t) {
            return He( (n, r) => {
                let i = 0;
                n.subscribe(je(r, o => e.call(t, o, i++) && r.next(o)))
            }
            )
        }
        class hC {
        }
        class pC {
        }
        class wn {
            constructor(t) {
                this.normalizedNames = new Map,
                this.lazyUpdate = null,
                t ? this.lazyInit = "string" == typeof t ? () => {
                    this.headers = new Map,
                    t.split("\n").forEach(n => {
                        const r = n.indexOf(":");
                        if (r > 0) {
                            const i = n.slice(0, r)
                              , o = i.toLowerCase()
                              , s = n.slice(r + 1).trim();
                            this.maybeSetNormalizedName(i, o),
                            this.headers.has(o) ? this.headers.get(o).push(s) : this.headers.set(o, [s])
                        }
                    }
                    )
                }
                : () => {
                    this.headers = new Map,
                    Object.keys(t).forEach(n => {
                        let r = t[n];
                        const i = n.toLowerCase();
                        "string" == typeof r && (r = [r]),
                        r.length > 0 && (this.headers.set(i, r),
                        this.maybeSetNormalizedName(n, i))
                    }
                    )
                }
                : this.headers = new Map
            }
            has(t) {
                return this.init(),
                this.headers.has(t.toLowerCase())
            }
            get(t) {
                this.init();
                const n = this.headers.get(t.toLowerCase());
                return n && n.length > 0 ? n[0] : null
            }
            keys() {
                return this.init(),
                Array.from(this.normalizedNames.values())
            }
            getAll(t) {
                return this.init(),
                this.headers.get(t.toLowerCase()) || null
            }
            append(t, n) {
                return this.clone({
                    name: t,
                    value: n,
                    op: "a"
                })
            }
            set(t, n) {
                return this.clone({
                    name: t,
                    value: n,
                    op: "s"
                })
            }
            delete(t, n) {
                return this.clone({
                    name: t,
                    value: n,
                    op: "d"
                })
            }
            maybeSetNormalizedName(t, n) {
                this.normalizedNames.has(n) || this.normalizedNames.set(n, t)
            }
            init() {
                this.lazyInit && (this.lazyInit instanceof wn ? this.copyFrom(this.lazyInit) : this.lazyInit(),
                this.lazyInit = null,
                this.lazyUpdate && (this.lazyUpdate.forEach(t => this.applyUpdate(t)),
                this.lazyUpdate = null))
            }
            copyFrom(t) {
                t.init(),
                Array.from(t.headers.keys()).forEach(n => {
                    this.headers.set(n, t.headers.get(n)),
                    this.normalizedNames.set(n, t.normalizedNames.get(n))
                }
                )
            }
            clone(t) {
                const n = new wn;
                return n.lazyInit = this.lazyInit && this.lazyInit instanceof wn ? this.lazyInit : this,
                n.lazyUpdate = (this.lazyUpdate || []).concat([t]),
                n
            }
            applyUpdate(t) {
                const n = t.name.toLowerCase();
                switch (t.op) {
                case "a":
                case "s":
                    let r = t.value;
                    if ("string" == typeof r && (r = [r]),
                    0 === r.length)
                        return;
                    this.maybeSetNormalizedName(t.name, n);
                    const i = ("a" === t.op ? this.headers.get(n) : void 0) || [];
                    i.push(...r),
                    this.headers.set(n, i);
                    break;
                case "d":
                    const o = t.value;
                    if (o) {
                        let s = this.headers.get(n);
                        if (!s)
                            return;
                        s = s.filter(a => -1 === o.indexOf(a)),
                        0 === s.length ? (this.headers.delete(n),
                        this.normalizedNames.delete(n)) : this.headers.set(n, s)
                    } else
                        this.headers.delete(n),
                        this.normalizedNames.delete(n)
                }
            }
            forEach(t) {
                this.init(),
                Array.from(this.normalizedNames.keys()).forEach(n => t(this.normalizedNames.get(n), this.headers.get(n)))
            }
        }
        class SN {
            encodeKey(t) {
                return gC(t)
            }
            encodeValue(t) {
                return gC(t)
            }
            decodeKey(t) {
                return decodeURIComponent(t)
            }
            decodeValue(t) {
                return decodeURIComponent(t)
            }
        }
        const IN = /%(\d[a-f0-9])/gi
          , AN = {
            40: "@",
            "3A": ":",
            24: "$",
            "2C": ",",
            "3B": ";",
            "3D": "=",
            "3F": "?",
            "2F": "/"
        };
        function gC(e) {
            return encodeURIComponent(e).replace(IN, (t, n) => {
                var r;
                return null !== (r = AN[n]) && void 0 !== r ? r : t
            }
            )
        }
        function za(e) {
            return `${e}`
        }
        class sr {
            constructor(t={}) {
                if (this.updates = null,
                this.cloneFrom = null,
                this.encoder = t.encoder || new SN,
                t.fromString) {
                    if (t.fromObject)
                        throw new Error("Cannot specify both fromString and fromObject.");
                    this.map = function MN(e, t) {
                        const n = new Map;
                        return e.length > 0 && e.replace(/^\?/, "").split("&").forEach(i => {
                            const o = i.indexOf("=")
                              , [s,a] = -1 == o ? [t.decodeKey(i), ""] : [t.decodeKey(i.slice(0, o)), t.decodeValue(i.slice(o + 1))]
                              , u = n.get(s) || [];
                            u.push(a),
                            n.set(s, u)
                        }
                        ),
                        n
                    }(t.fromString, this.encoder)
                } else
                    t.fromObject ? (this.map = new Map,
                    Object.keys(t.fromObject).forEach(n => {
                        const r = t.fromObject[n]
                          , i = Array.isArray(r) ? r.map(za) : [za(r)];
                        this.map.set(n, i)
                    }
                    )) : this.map = null
            }
            has(t) {
                return this.init(),
                this.map.has(t)
            }
            get(t) {
                this.init();
                const n = this.map.get(t);
                return n ? n[0] : null
            }
            getAll(t) {
                return this.init(),
                this.map.get(t) || null
            }
            keys() {
                return this.init(),
                Array.from(this.map.keys())
            }
            append(t, n) {
                return this.clone({
                    param: t,
                    value: n,
                    op: "a"
                })
            }
            appendAll(t) {
                const n = [];
                return Object.keys(t).forEach(r => {
                    const i = t[r];
                    Array.isArray(i) ? i.forEach(o => {
                        n.push({
                            param: r,
                            value: o,
                            op: "a"
                        })
                    }
                    ) : n.push({
                        param: r,
                        value: i,
                        op: "a"
                    })
                }
                ),
                this.clone(n)
            }
            set(t, n) {
                return this.clone({
                    param: t,
                    value: n,
                    op: "s"
                })
            }
            delete(t, n) {
                return this.clone({
                    param: t,
                    value: n,
                    op: "d"
                })
            }
            toString() {
                return this.init(),
                this.keys().map(t => {
                    const n = this.encoder.encodeKey(t);
                    return this.map.get(t).map(r => n + "=" + this.encoder.encodeValue(r)).join("&")
                }
                ).filter(t => "" !== t).join("&")
            }
            clone(t) {
                const n = new sr({
                    encoder: this.encoder
                });
                return n.cloneFrom = this.cloneFrom || this,
                n.updates = (this.updates || []).concat(t),
                n
            }
            init() {
                null === this.map && (this.map = new Map),
                null !== this.cloneFrom && (this.cloneFrom.init(),
                this.cloneFrom.keys().forEach(t => this.map.set(t, this.cloneFrom.map.get(t))),
                this.updates.forEach(t => {
                    switch (t.op) {
                    case "a":
                    case "s":
                        const n = ("a" === t.op ? this.map.get(t.param) : void 0) || [];
                        n.push(za(t.value)),
                        this.map.set(t.param, n);
                        break;
                    case "d":
                        if (void 0 === t.value) {
                            this.map.delete(t.param);
                            break
                        }
                        {
                            let r = this.map.get(t.param) || [];
                            const i = r.indexOf(za(t.value));
                            -1 !== i && r.splice(i, 1),
                            r.length > 0 ? this.map.set(t.param, r) : this.map.delete(t.param)
                        }
                    }
                }
                ),
                this.cloneFrom = this.updates = null)
            }
        }
        class TN {
            constructor() {
                this.map = new Map
            }
            set(t, n) {
                return this.map.set(t, n),
                this
            }
            get(t) {
                return this.map.has(t) || this.map.set(t, t.defaultValue()),
                this.map.get(t)
            }
            delete(t) {
                return this.map.delete(t),
                this
            }
            has(t) {
                return this.map.has(t)
            }
            keys() {
                return this.map.keys()
            }
        }
        function mC(e) {
            return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer
        }
        function vC(e) {
            return "undefined" != typeof Blob && e instanceof Blob
        }
        function yC(e) {
            return "undefined" != typeof FormData && e instanceof FormData
        }
        class $o {
            constructor(t, n, r, i) {
                let o;
                if (this.url = n,
                this.body = null,
                this.reportProgress = !1,
                this.withCredentials = !1,
                this.responseType = "json",
                this.method = t.toUpperCase(),
                function xN(e) {
                    switch (e) {
                    case "DELETE":
                    case "GET":
                    case "HEAD":
                    case "OPTIONS":
                    case "JSONP":
                        return !1;
                    default:
                        return !0
                    }
                }(this.method) || i ? (this.body = void 0 !== r ? r : null,
                o = i) : o = r,
                o && (this.reportProgress = !!o.reportProgress,
                this.withCredentials = !!o.withCredentials,
                o.responseType && (this.responseType = o.responseType),
                o.headers && (this.headers = o.headers),
                o.context && (this.context = o.context),
                o.params && (this.params = o.params)),
                this.headers || (this.headers = new wn),
                this.context || (this.context = new TN),
                this.params) {
                    const s = this.params.toString();
                    if (0 === s.length)
                        this.urlWithParams = n;
                    else {
                        const a = n.indexOf("?");
                        this.urlWithParams = n + (-1 === a ? "?" : a < n.length - 1 ? "&" : "") + s
                    }
                } else
                    this.params = new sr,
                    this.urlWithParams = n
            }
            serializeBody() {
                return null === this.body ? null : mC(this.body) || vC(this.body) || yC(this.body) || function RN(e) {
                    return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams
                }(this.body) || "string" == typeof this.body ? this.body : this.body instanceof sr ? this.body.toString() : "object" == typeof this.body || "boolean" == typeof this.body || Array.isArray(this.body) ? JSON.stringify(this.body) : this.body.toString()
            }
            detectContentTypeHeader() {
                return null === this.body || yC(this.body) ? null : vC(this.body) ? this.body.type || null : mC(this.body) ? null : "string" == typeof this.body ? "text/plain" : this.body instanceof sr ? "application/x-www-form-urlencoded;charset=UTF-8" : "object" == typeof this.body || "number" == typeof this.body || "boolean" == typeof this.body ? "application/json" : null
            }
            clone(t={}) {
                var n;
                const r = t.method || this.method
                  , i = t.url || this.url
                  , o = t.responseType || this.responseType
                  , s = void 0 !== t.body ? t.body : this.body
                  , a = void 0 !== t.withCredentials ? t.withCredentials : this.withCredentials
                  , u = void 0 !== t.reportProgress ? t.reportProgress : this.reportProgress;
                let l = t.headers || this.headers
                  , c = t.params || this.params;
                const d = null !== (n = t.context) && void 0 !== n ? n : this.context;
                return void 0 !== t.setHeaders && (l = Object.keys(t.setHeaders).reduce( (f, h) => f.set(h, t.setHeaders[h]), l)),
                t.setParams && (c = Object.keys(t.setParams).reduce( (f, h) => f.set(h, t.setParams[h]), c)),
                new $o(r,i,s,{
                    params: c,
                    headers: l,
                    context: d,
                    reportProgress: u,
                    responseType: o,
                    withCredentials: a
                })
            }
        }
        var Ne = ( () => ((Ne = Ne || {})[Ne.Sent = 0] = "Sent",
        Ne[Ne.UploadProgress = 1] = "UploadProgress",
        Ne[Ne.ResponseHeader = 2] = "ResponseHeader",
        Ne[Ne.DownloadProgress = 3] = "DownloadProgress",
        Ne[Ne.Response = 4] = "Response",
        Ne[Ne.User = 5] = "User",
        Ne))();
        class nf {
            constructor(t, n=200, r="OK") {
                this.headers = t.headers || new wn,
                this.status = void 0 !== t.status ? t.status : n,
                this.statusText = t.statusText || r,
                this.url = t.url || null,
                this.ok = this.status >= 200 && this.status < 300
            }
        }
        class rf extends nf {
            constructor(t={}) {
                super(t),
                this.type = Ne.ResponseHeader
            }
            clone(t={}) {
                return new rf({
                    headers: t.headers || this.headers,
                    status: void 0 !== t.status ? t.status : this.status,
                    statusText: t.statusText || this.statusText,
                    url: t.url || this.url || void 0
                })
            }
        }
        class Za extends nf {
            constructor(t={}) {
                super(t),
                this.type = Ne.Response,
                this.body = void 0 !== t.body ? t.body : null
            }
            clone(t={}) {
                return new Za({
                    body: void 0 !== t.body ? t.body : this.body,
                    headers: t.headers || this.headers,
                    status: void 0 !== t.status ? t.status : this.status,
                    statusText: t.statusText || this.statusText,
                    url: t.url || this.url || void 0
                })
            }
        }
        class _C extends nf {
            constructor(t) {
                super(t, 0, "Unknown Error"),
                this.name = "HttpErrorResponse",
                this.ok = !1,
                this.message = this.status >= 200 && this.status < 300 ? `Http failure during parsing for ${t.url || "(unknown url)"}` : `Http failure response for ${t.url || "(unknown url)"}: ${t.status} ${t.statusText}`,
                this.error = t.error || null
            }
        }
        function of(e, t) {
            return {
                body: t,
                headers: e.headers,
                context: e.context,
                observe: e.observe,
                params: e.params,
                reportProgress: e.reportProgress,
                responseType: e.responseType,
                withCredentials: e.withCredentials
            }
        }
        let DC = ( () => {
            class e {
                constructor(n) {
                    this.handler = n
                }
                request(n, r, i={}) {
                    let o;
                    if (n instanceof $o)
                        o = n;
                    else {
                        let u, l;
                        u = i.headers instanceof wn ? i.headers : new wn(i.headers),
                        i.params && (l = i.params instanceof sr ? i.params : new sr({
                            fromObject: i.params
                        })),
                        o = new $o(n,r,void 0 !== i.body ? i.body : null,{
                            headers: u,
                            context: i.context,
                            params: l,
                            reportProgress: i.reportProgress,
                            responseType: i.responseType || "json",
                            withCredentials: i.withCredentials
                        })
                    }
                    const s = V(o).pipe(Ai(u => this.handler.handle(u)));
                    if (n instanceof $o || "events" === i.observe)
                        return s;
                    const a = s.pipe(Tr(u => u instanceof Za));
                    switch (i.observe || "body") {
                    case "body":
                        switch (o.responseType) {
                        case "arraybuffer":
                            return a.pipe(X(u => {
                                if (null !== u.body && !(u.body instanceof ArrayBuffer))
                                    throw new Error("Response is not an ArrayBuffer.");
                                return u.body
                            }
                            ));
                        case "blob":
                            return a.pipe(X(u => {
                                if (null !== u.body && !(u.body instanceof Blob))
                                    throw new Error("Response is not a Blob.");
                                return u.body
                            }
                            ));
                        case "text":
                            return a.pipe(X(u => {
                                if (null !== u.body && "string" != typeof u.body)
                                    throw new Error("Response is not a string.");
                                return u.body
                            }
                            ));
                        default:
                            return a.pipe(X(u => u.body))
                        }
                    case "response":
                        return a;
                    default:
                        throw new Error(`Unreachable: unhandled observe type ${i.observe}}`)
                    }
                }
                delete(n, r={}) {
                    return this.request("DELETE", n, r)
                }
                get(n, r={}) {
                    return this.request("GET", n, r)
                }
                head(n, r={}) {
                    return this.request("HEAD", n, r)
                }
                jsonp(n, r) {
                    return this.request("JSONP", n, {
                        params: (new sr).append(r, "JSONP_CALLBACK"),
                        observe: "body",
                        responseType: "json"
                    })
                }
                options(n, r={}) {
                    return this.request("OPTIONS", n, r)
                }
                patch(n, r, i={}) {
                    return this.request("PATCH", n, of(i, r))
                }
                post(n, r, i={}) {
                    return this.request("POST", n, of(i, r))
                }
                put(n, r, i={}) {
                    return this.request("PUT", n, of(i, r))
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(hC))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        class CC {
            constructor(t, n) {
                this.next = t,
                this.interceptor = n
            }
            handle(t) {
                return this.interceptor.intercept(t, this.next)
            }
        }
        const wC = new N("HTTP_INTERCEPTORS");
        let FN = ( () => {
            class e {
                intercept(n, r) {
                    return r.handle(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        const NN = /^\)\]\}',?\n/;
        let bC = ( () => {
            class e {
                constructor(n) {
                    this.xhrFactory = n
                }
                handle(n) {
                    if ("JSONP" === n.method)
                        throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");
                    return new Me(r => {
                        const i = this.xhrFactory.build();
                        if (i.open(n.method, n.urlWithParams),
                        n.withCredentials && (i.withCredentials = !0),
                        n.headers.forEach( (h, p) => i.setRequestHeader(h, p.join(","))),
                        n.headers.has("Accept") || i.setRequestHeader("Accept", "application/json, text/plain, */*"),
                        !n.headers.has("Content-Type")) {
                            const h = n.detectContentTypeHeader();
                            null !== h && i.setRequestHeader("Content-Type", h)
                        }
                        if (n.responseType) {
                            const h = n.responseType.toLowerCase();
                            i.responseType = "json" !== h ? h : "text"
                        }
                        const o = n.serializeBody();
                        let s = null;
                        const a = () => {
                            if (null !== s)
                                return s;
                            const h = i.statusText || "OK"
                              , p = new wn(i.getAllResponseHeaders())
                              , g = function PN(e) {
                                return "responseURL"in e && e.responseURL ? e.responseURL : /^X-Request-URL:/m.test(e.getAllResponseHeaders()) ? e.getResponseHeader("X-Request-URL") : null
                            }(i) || n.url;
                            return s = new rf({
                                headers: p,
                                status: i.status,
                                statusText: h,
                                url: g
                            }),
                            s
                        }
                          , u = () => {
                            let {headers: h, status: p, statusText: g, url: v} = a()
                              , m = null;
                            204 !== p && (m = void 0 === i.response ? i.responseText : i.response),
                            0 === p && (p = m ? 200 : 0);
                            let C = p >= 200 && p < 300;
                            if ("json" === n.responseType && "string" == typeof m) {
                                const y = m;
                                m = m.replace(NN, "");
                                try {
                                    m = "" !== m ? JSON.parse(m) : null
                                } catch (E) {
                                    m = y,
                                    C && (C = !1,
                                    m = {
                                        error: E,
                                        text: m
                                    })
                                }
                            }
                            C ? (r.next(new Za({
                                body: m,
                                headers: h,
                                status: p,
                                statusText: g,
                                url: v || void 0
                            })),
                            r.complete()) : r.error(new _C({
                                error: m,
                                headers: h,
                                status: p,
                                statusText: g,
                                url: v || void 0
                            }))
                        }
                          , l = h => {
                            const {url: p} = a()
                              , g = new _C({
                                error: h,
                                status: i.status || 0,
                                statusText: i.statusText || "Unknown Error",
                                url: p || void 0
                            });
                            r.error(g)
                        }
                        ;
                        let c = !1;
                        const d = h => {
                            c || (r.next(a()),
                            c = !0);
                            let p = {
                                type: Ne.DownloadProgress,
                                loaded: h.loaded
                            };
                            h.lengthComputable && (p.total = h.total),
                            "text" === n.responseType && !!i.responseText && (p.partialText = i.responseText),
                            r.next(p)
                        }
                          , f = h => {
                            let p = {
                                type: Ne.UploadProgress,
                                loaded: h.loaded
                            };
                            h.lengthComputable && (p.total = h.total),
                            r.next(p)
                        }
                        ;
                        return i.addEventListener("load", u),
                        i.addEventListener("error", l),
                        i.addEventListener("timeout", l),
                        i.addEventListener("abort", l),
                        n.reportProgress && (i.addEventListener("progress", d),
                        null !== o && i.upload && i.upload.addEventListener("progress", f)),
                        i.send(o),
                        r.next({
                            type: Ne.Sent
                        }),
                        () => {
                            i.removeEventListener("error", l),
                            i.removeEventListener("abort", l),
                            i.removeEventListener("load", u),
                            i.removeEventListener("timeout", l),
                            n.reportProgress && (i.removeEventListener("progress", d),
                            null !== o && i.upload && i.upload.removeEventListener("progress", f)),
                            i.readyState !== i.DONE && i.abort()
                        }
                    }
                    )
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(U_))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        const sf = new N("XSRF_COOKIE_NAME")
          , af = new N("XSRF_HEADER_NAME");
        class EC {
        }
        let ON = ( () => {
            class e {
                constructor(n, r, i) {
                    this.doc = n,
                    this.platform = r,
                    this.cookieName = i,
                    this.lastCookieString = "",
                    this.lastToken = null,
                    this.parseCount = 0
                }
                getToken() {
                    if ("server" === this.platform)
                        return null;
                    const n = this.doc.cookie || "";
                    return n !== this.lastCookieString && (this.parseCount++,
                    this.lastToken = N_(n, this.cookieName),
                    this.lastCookieString = n),
                    this.lastToken
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(st),S(Jc),S(sf))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )()
          , uf = ( () => {
            class e {
                constructor(n, r) {
                    this.tokenService = n,
                    this.headerName = r
                }
                intercept(n, r) {
                    const i = n.url.toLowerCase();
                    if ("GET" === n.method || "HEAD" === n.method || i.startsWith("http://") || i.startsWith("https://"))
                        return r.handle(n);
                    const o = this.tokenService.getToken();
                    return null !== o && !n.headers.has(this.headerName) && (n = n.clone({
                        headers: n.headers.set(this.headerName, o)
                    })),
                    r.handle(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(EC),S(af))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )()
          , kN = ( () => {
            class e {
                constructor(n, r) {
                    this.backend = n,
                    this.injector = r,
                    this.chain = null
                }
                handle(n) {
                    if (null === this.chain) {
                        const r = this.injector.get(wC, []);
                        this.chain = r.reduceRight( (i, o) => new CC(i,o), this.backend)
                    }
                    return this.chain.handle(n)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(pC),S(Ye))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )()
          , LN = ( () => {
            class e {
                static disable() {
                    return {
                        ngModule: e,
                        providers: [{
                            provide: uf,
                            useClass: FN
                        }]
                    }
                }
                static withOptions(n={}) {
                    return {
                        ngModule: e,
                        providers: [n.cookieName ? {
                            provide: sf,
                            useValue: n.cookieName
                        } : [], n.headerName ? {
                            provide: af,
                            useValue: n.headerName
                        } : []]
                    }
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({
                providers: [uf, {
                    provide: wC,
                    useExisting: uf,
                    multi: !0
                }, {
                    provide: EC,
                    useClass: ON
                }, {
                    provide: sf,
                    useValue: "XSRF-TOKEN"
                }, {
                    provide: af,
                    useValue: "X-XSRF-TOKEN"
                }]
            }),
            e
        }
        )()
          , VN = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({
                providers: [DC, {
                    provide: hC,
                    useClass: kN
                }, bC, {
                    provide: pC,
                    useExisting: bC
                }],
                imports: [LN.withOptions({
                    cookieName: "XSRF-TOKEN",
                    headerName: "X-XSRF-TOKEN"
                })]
            }),
            e
        }
        )();
        class Jt extends en {
            constructor(t) {
                super(),
                this._value = t
            }
            get value() {
                return this.getValue()
            }
            _subscribe(t) {
                const n = super._subscribe(t);
                return !n.closed && t.next(this._value),
                n
            }
            getValue() {
                const {hasError: t, thrownError: n, _value: r} = this;
                if (t)
                    throw n;
                return this._throwIfClosed(),
                r
            }
            next(t) {
                super.next(this._value = t)
            }
        }
        function SC(...e) {
            const t = Vi(e)
              , n = Mh(e)
              , {args: r, keys: i} = aD(e);
            if (0 === r.length)
                return Pe([], t);
            const o = new Me(function jN(e, t, n=fr) {
                return r => {
                    MC(t, () => {
                        const {length: i} = e
                          , o = new Array(i);
                        let s = i
                          , a = i;
                        for (let u = 0; u < i; u++)
                            MC(t, () => {
                                const l = Pe(e[u], t);
                                let c = !1;
                                l.subscribe(je(r, d => {
                                    o[u] = d,
                                    c || (c = !0,
                                    a--),
                                    a || r.next(n(o.slice()))
                                }
                                , () => {
                                    --s || r.complete()
                                }
                                ))
                            }
                            , r)
                    }
                    , r)
                }
            }(r, t, i ? s => lD(i, s) : fr));
            return n ? o.pipe(uD(n)) : o
        }
        function MC(e, t, n) {
            e ? Sn(n, e, t) : t()
        }
        function Go(e, t) {
            const n = ce(e) ? e : () => e
              , r = i => i.error(n());
            return new Me(t ? i => t.schedule(r, 0, i) : r)
        }
        const qo = ki(e => function() {
            e(this),
            this.name = "EmptyError",
            this.message = "no elements in sequence"
        }
        );
        function lf(...e) {
            return function BN() {
                return kr(1)
            }()(Pe(e, Vi(e)))
        }
        function IC(e) {
            return new Me(t => {
                rn(e()).subscribe(t)
            }
            )
        }
        function cf() {
            return He( (e, t) => {
                let n = null;
                e._refCount++;
                const r = je(t, void 0, void 0, void 0, () => {
                    if (!e || e._refCount <= 0 || 0 < --e._refCount)
                        return void (n = null);
                    const i = e._connection
                      , o = n;
                    n = null,
                    i && (!o || i === o) && i.unsubscribe(),
                    t.unsubscribe()
                }
                );
                e.subscribe(r),
                r.closed || (n = e.connect())
            }
            )
        }
        class AC extends Me {
            constructor(t, n) {
                super(),
                this.source = t,
                this.subjectFactory = n,
                this._subject = null,
                this._refCount = 0,
                this._connection = null,
                fh(t) && (this.lift = t.lift)
            }
            _subscribe(t) {
                return this.getSubject().subscribe(t)
            }
            getSubject() {
                const t = this._subject;
                return (!t || t.isStopped) && (this._subject = this.subjectFactory()),
                this._subject
            }
            _teardown() {
                this._refCount = 0;
                const {_connection: t} = this;
                this._subject = this._connection = null,
                null == t || t.unsubscribe()
            }
            connect() {
                let t = this._connection;
                if (!t) {
                    t = this._connection = new Et;
                    const n = this.getSubject();
                    t.add(this.source.subscribe(je(n, void 0, () => {
                        this._teardown(),
                        n.complete()
                    }
                    , r => {
                        this._teardown(),
                        n.error(r)
                    }
                    , () => this._teardown()))),
                    t.closed && (this._connection = null,
                    t = Et.EMPTY)
                }
                return t
            }
            refCount() {
                return cf()(this)
            }
        }
        function xr(e, t) {
            return He( (n, r) => {
                let i = null
                  , o = 0
                  , s = !1;
                const a = () => s && !i && r.complete();
                n.subscribe(je(r, u => {
                    null == i || i.unsubscribe();
                    let l = 0;
                    const c = o++;
                    rn(e(u, c)).subscribe(i = je(r, d => r.next(t ? t(u, d, c, l++) : d), () => {
                        i = null,
                        a()
                    }
                    ))
                }
                , () => {
                    s = !0,
                    a()
                }
                ))
            }
            )
        }
        function UN(e, t, n, r, i) {
            return (o, s) => {
                let a = n
                  , u = t
                  , l = 0;
                o.subscribe(je(s, c => {
                    const d = l++;
                    u = a ? e(u, c, d) : (a = !0,
                    c),
                    r && s.next(u)
                }
                , i && ( () => {
                    a && s.next(u),
                    s.complete()
                }
                )))
            }
        }
        function TC(e, t) {
            return He(UN(e, t, arguments.length >= 2, !0))
        }
        function ar(e) {
            return He( (t, n) => {
                let o, r = null, i = !1;
                r = t.subscribe(je(n, void 0, void 0, s => {
                    o = rn(e(s, ar(e)(t))),
                    r ? (r.unsubscribe(),
                    r = null,
                    o.subscribe(n)) : i = !0
                }
                )),
                i && (r.unsubscribe(),
                r = null,
                o.subscribe(n))
            }
            )
        }
        function df(e) {
            return e <= 0 ? () => Mn : He( (t, n) => {
                let r = [];
                t.subscribe(je(n, i => {
                    r.push(i),
                    e < r.length && r.shift()
                }
                , () => {
                    for (const i of r)
                        n.next(i);
                    n.complete()
                }
                , void 0, () => {
                    r = null
                }
                ))
            }
            )
        }
        function xC(e=$N) {
            return He( (t, n) => {
                let r = !1;
                t.subscribe(je(n, i => {
                    r = !0,
                    n.next(i)
                }
                , () => r ? n.complete() : n.error(e())))
            }
            )
        }
        function $N() {
            return new qo
        }
        function ff(e) {
            return He( (t, n) => {
                let r = !1;
                t.subscribe(je(n, i => {
                    r = !0,
                    n.next(i)
                }
                , () => {
                    r || n.next(e),
                    n.complete()
                }
                ))
            }
            )
        }
        function Rr(e, t) {
            const n = arguments.length >= 2;
            return r => r.pipe(e ? Tr( (i, o) => e(i, o, r)) : fr, ji(1), n ? ff(t) : xC( () => new qo))
        }
        function Xe(e, t, n) {
            const r = ce(e) || t || n ? {
                next: e,
                error: t,
                complete: n
            } : e;
            return r ? He( (i, o) => {
                var s;
                null === (s = r.subscribe) || void 0 === s || s.call(r);
                let a = !0;
                i.subscribe(je(o, u => {
                    var l;
                    null === (l = r.next) || void 0 === l || l.call(r, u),
                    o.next(u)
                }
                , () => {
                    var u;
                    a = !1,
                    null === (u = r.complete) || void 0 === u || u.call(r),
                    o.complete()
                }
                , u => {
                    var l;
                    a = !1,
                    null === (l = r.error) || void 0 === l || l.call(r, u),
                    o.error(u)
                }
                , () => {
                    var u, l;
                    a && (null === (u = r.unsubscribe) || void 0 === u || u.call(r)),
                    null === (l = r.finalize) || void 0 === l || l.call(r)
                }
                ))
            }
            ) : fr
        }
        function hf(e) {
            return He( (t, n) => {
                try {
                    t.subscribe(n)
                } finally {
                    n.add(e)
                }
            }
            )
        }
        class $n {
            constructor(t, n) {
                this.id = t,
                this.url = n
            }
        }
        class pf extends $n {
            constructor(t, n, r="imperative", i=null) {
                super(t, n),
                this.type = 0,
                this.navigationTrigger = r,
                this.restoredState = i
            }
            toString() {
                return `NavigationStart(id: ${this.id}, url: '${this.url}')`
            }
        }
        class Wo extends $n {
            constructor(t, n, r) {
                super(t, n),
                this.urlAfterRedirects = r,
                this.type = 1
            }
            toString() {
                return `NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`
            }
        }
        class RC extends $n {
            constructor(t, n, r) {
                super(t, n),
                this.reason = r,
                this.type = 2
            }
            toString() {
                return `NavigationCancel(id: ${this.id}, url: '${this.url}')`
            }
        }
        class WN extends $n {
            constructor(t, n, r) {
                super(t, n),
                this.error = r,
                this.type = 3
            }
            toString() {
                return `NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`
            }
        }
        class zN extends $n {
            constructor(t, n, r, i) {
                super(t, n),
                this.urlAfterRedirects = r,
                this.state = i,
                this.type = 4
            }
            toString() {
                return `RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`
            }
        }
        class ZN extends $n {
            constructor(t, n, r, i) {
                super(t, n),
                this.urlAfterRedirects = r,
                this.state = i,
                this.type = 7
            }
            toString() {
                return `GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`
            }
        }
        class YN extends $n {
            constructor(t, n, r, i, o) {
                super(t, n),
                this.urlAfterRedirects = r,
                this.state = i,
                this.shouldActivate = o,
                this.type = 8
            }
            toString() {
                return `GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`
            }
        }
        class JN extends $n {
            constructor(t, n, r, i) {
                super(t, n),
                this.urlAfterRedirects = r,
                this.state = i,
                this.type = 5
            }
            toString() {
                return `ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`
            }
        }
        class QN extends $n {
            constructor(t, n, r, i) {
                super(t, n),
                this.urlAfterRedirects = r,
                this.state = i,
                this.type = 6
            }
            toString() {
                return `ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`
            }
        }
        class XN {
            constructor(t) {
                this.route = t,
                this.type = 9
            }
            toString() {
                return `RouteConfigLoadStart(path: ${this.route.path})`
            }
        }
        class KN {
            constructor(t) {
                this.route = t,
                this.type = 10
            }
            toString() {
                return `RouteConfigLoadEnd(path: ${this.route.path})`
            }
        }
        class eP {
            constructor(t) {
                this.snapshot = t,
                this.type = 11
            }
            toString() {
                return `ChildActivationStart(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')`
            }
        }
        class tP {
            constructor(t) {
                this.snapshot = t,
                this.type = 12
            }
            toString() {
                return `ChildActivationEnd(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')`
            }
        }
        class nP {
            constructor(t) {
                this.snapshot = t,
                this.type = 13
            }
            toString() {
                return `ActivationStart(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')`
            }
        }
        class rP {
            constructor(t) {
                this.snapshot = t,
                this.type = 14
            }
            toString() {
                return `ActivationEnd(path: '${this.snapshot.routeConfig && this.snapshot.routeConfig.path || ""}')`
            }
        }
        class FC {
            constructor(t, n, r) {
                this.routerEvent = t,
                this.position = n,
                this.anchor = r,
                this.type = 15
            }
            toString() {
                return `Scroll(anchor: '${this.anchor}', position: '${this.position ? `${this.position[0]}, ${this.position[1]}` : null}')`
            }
        }
        const q = "primary";
        class iP {
            constructor(t) {
                this.params = t || {}
            }
            has(t) {
                return Object.prototype.hasOwnProperty.call(this.params, t)
            }
            get(t) {
                if (this.has(t)) {
                    const n = this.params[t];
                    return Array.isArray(n) ? n[0] : n
                }
                return null
            }
            getAll(t) {
                if (this.has(t)) {
                    const n = this.params[t];
                    return Array.isArray(n) ? n : [n]
                }
                return []
            }
            get keys() {
                return Object.keys(this.params)
            }
        }
        function Ti(e) {
            return new iP(e)
        }
        const NC = "ngNavigationCancelingError";
        function gf(e) {
            const t = Error("NavigationCancelingError: " + e);
            return t[NC] = !0,
            t
        }
        function sP(e, t, n) {
            const r = n.path.split("/");
            if (r.length > e.length || "full" === n.pathMatch && (t.hasChildren() || r.length < e.length))
                return null;
            const i = {};
            for (let o = 0; o < r.length; o++) {
                const s = r[o]
                  , a = e[o];
                if (s.startsWith(":"))
                    i[s.substring(1)] = a;
                else if (s !== a.path)
                    return null
            }
            return {
                consumed: e.slice(0, r.length),
                posParams: i
            }
        }
        function bn(e, t) {
            const n = e ? Object.keys(e) : void 0
              , r = t ? Object.keys(t) : void 0;
            if (!n || !r || n.length != r.length)
                return !1;
            let i;
            for (let o = 0; o < n.length; o++)
                if (i = n[o],
                !PC(e[i], t[i]))
                    return !1;
            return !0
        }
        function PC(e, t) {
            if (Array.isArray(e) && Array.isArray(t)) {
                if (e.length !== t.length)
                    return !1;
                const n = [...e].sort()
                  , r = [...t].sort();
                return n.every( (i, o) => r[o] === i)
            }
            return e === t
        }
        function OC(e) {
            return Array.prototype.concat.apply([], e)
        }
        function kC(e) {
            return e.length > 0 ? e[e.length - 1] : null
        }
        function Ge(e, t) {
            for (const n in e)
                e.hasOwnProperty(n) && t(e[n], n)
        }
        function Qt(e) {
            return _c(e) ? e : mo(e) ? Pe(Promise.resolve(e)) : V(e)
        }
        const lP = {
            exact: function jC(e, t, n) {
                if (!Nr(e.segments, t.segments) || !Ya(e.segments, t.segments, n) || e.numberOfChildren !== t.numberOfChildren)
                    return !1;
                for (const r in t.children)
                    if (!e.children[r] || !jC(e.children[r], t.children[r], n))
                        return !1;
                return !0
            },
            subset: BC
        }
          , LC = {
            exact: function cP(e, t) {
                return bn(e, t)
            },
            subset: function dP(e, t) {
                return Object.keys(t).length <= Object.keys(e).length && Object.keys(t).every(n => PC(e[n], t[n]))
            },
            ignored: () => !0
        };
        function VC(e, t, n) {
            return lP[n.paths](e.root, t.root, n.matrixParams) && LC[n.queryParams](e.queryParams, t.queryParams) && !("exact" === n.fragment && e.fragment !== t.fragment)
        }
        function BC(e, t, n) {
            return HC(e, t, t.segments, n)
        }
        function HC(e, t, n, r) {
            if (e.segments.length > n.length) {
                const i = e.segments.slice(0, n.length);
                return !(!Nr(i, n) || t.hasChildren() || !Ya(i, n, r))
            }
            if (e.segments.length === n.length) {
                if (!Nr(e.segments, n) || !Ya(e.segments, n, r))
                    return !1;
                for (const i in t.children)
                    if (!e.children[i] || !BC(e.children[i], t.children[i], r))
                        return !1;
                return !0
            }
            {
                const i = n.slice(0, e.segments.length)
                  , o = n.slice(e.segments.length);
                return !!(Nr(e.segments, i) && Ya(e.segments, i, r) && e.children[q]) && HC(e.children[q], t, o, r)
            }
        }
        function Ya(e, t, n) {
            return t.every( (r, i) => LC[n](e[i].parameters, r.parameters))
        }
        class Fr {
            constructor(t, n, r) {
                this.root = t,
                this.queryParams = n,
                this.fragment = r
            }
            get queryParamMap() {
                return this._queryParamMap || (this._queryParamMap = Ti(this.queryParams)),
                this._queryParamMap
            }
            toString() {
                return pP.serialize(this)
            }
        }
        class Z {
            constructor(t, n) {
                this.segments = t,
                this.children = n,
                this.parent = null,
                Ge(n, (r, i) => r.parent = this)
            }
            hasChildren() {
                return this.numberOfChildren > 0
            }
            get numberOfChildren() {
                return Object.keys(this.children).length
            }
            toString() {
                return Ja(this)
            }
        }
        class zo {
            constructor(t, n) {
                this.path = t,
                this.parameters = n
            }
            get parameterMap() {
                return this._parameterMap || (this._parameterMap = Ti(this.parameters)),
                this._parameterMap
            }
            toString() {
                return WC(this)
            }
        }
        function Nr(e, t) {
            return e.length === t.length && e.every( (n, r) => n.path === t[r].path)
        }
        class UC {
        }
        class $C {
            parse(t) {
                const n = new bP(t);
                return new Fr(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())
            }
            serialize(t) {
                const n = `/${Zo(t.root, !0)}`
                  , r = function vP(e) {
                    const t = Object.keys(e).map(n => {
                        const r = e[n];
                        return Array.isArray(r) ? r.map(i => `${Qa(n)}=${Qa(i)}`).join("&") : `${Qa(n)}=${Qa(r)}`
                    }
                    ).filter(n => !!n);
                    return t.length ? `?${t.join("&")}` : ""
                }(t.queryParams);
                return `${n}${r}${"string" == typeof t.fragment ? `#${function gP(e) {
                    return encodeURI(e)
                }(t.fragment)}` : ""}`
            }
        }
        const pP = new $C;
        function Ja(e) {
            return e.segments.map(t => WC(t)).join("/")
        }
        function Zo(e, t) {
            if (!e.hasChildren())
                return Ja(e);
            if (t) {
                const n = e.children[q] ? Zo(e.children[q], !1) : ""
                  , r = [];
                return Ge(e.children, (i, o) => {
                    o !== q && r.push(`${o}:${Zo(i, !1)}`)
                }
                ),
                r.length > 0 ? `${n}(${r.join("//")})` : n
            }
            {
                const n = function hP(e, t) {
                    let n = [];
                    return Ge(e.children, (r, i) => {
                        i === q && (n = n.concat(t(r, i)))
                    }
                    ),
                    Ge(e.children, (r, i) => {
                        i !== q && (n = n.concat(t(r, i)))
                    }
                    ),
                    n
                }(e, (r, i) => i === q ? [Zo(e.children[q], !1)] : [`${i}:${Zo(r, !1)}`]);
                return 1 === Object.keys(e.children).length && null != e.children[q] ? `${Ja(e)}/${n[0]}` : `${Ja(e)}/(${n.join("//")})`
            }
        }
        function GC(e) {
            return encodeURIComponent(e).replace(/%40/g, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",")
        }
        function Qa(e) {
            return GC(e).replace(/%3B/gi, ";")
        }
        function mf(e) {
            return GC(e).replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/%26/gi, "&")
        }
        function Xa(e) {
            return decodeURIComponent(e)
        }
        function qC(e) {
            return Xa(e.replace(/\+/g, "%20"))
        }
        function WC(e) {
            return `${mf(e.path)}${function mP(e) {
                return Object.keys(e).map(t => `;${mf(t)}=${mf(e[t])}`).join("")
            }(e.parameters)}`
        }
        const yP = /^[^\/()?;=#]+/;
        function Ka(e) {
            const t = e.match(yP);
            return t ? t[0] : ""
        }
        const _P = /^[^=?&#]+/
          , CP = /^[^&#]+/;
        class bP {
            constructor(t) {
                this.url = t,
                this.remaining = t
            }
            parseRootSegment() {
                return this.consumeOptional("/"),
                "" === this.remaining || this.peekStartsWith("?") || this.peekStartsWith("#") ? new Z([],{}) : new Z([],this.parseChildren())
            }
            parseQueryParams() {
                const t = {};
                if (this.consumeOptional("?"))
                    do {
                        this.parseQueryParam(t)
                    } while (this.consumeOptional("&"));
                return t
            }
            parseFragment() {
                return this.consumeOptional("#") ? decodeURIComponent(this.remaining) : null
            }
            parseChildren() {
                if ("" === this.remaining)
                    return {};
                this.consumeOptional("/");
                const t = [];
                for (this.peekStartsWith("(") || t.push(this.parseSegment()); this.peekStartsWith("/") && !this.peekStartsWith("//") && !this.peekStartsWith("/("); )
                    this.capture("/"),
                    t.push(this.parseSegment());
                let n = {};
                this.peekStartsWith("/(") && (this.capture("/"),
                n = this.parseParens(!0));
                let r = {};
                return this.peekStartsWith("(") && (r = this.parseParens(!1)),
                (t.length > 0 || Object.keys(n).length > 0) && (r[q] = new Z(t,n)),
                r
            }
            parseSegment() {
                const t = Ka(this.remaining);
                if ("" === t && this.peekStartsWith(";"))
                    throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);
                return this.capture(t),
                new zo(Xa(t),this.parseMatrixParams())
            }
            parseMatrixParams() {
                const t = {};
                for (; this.consumeOptional(";"); )
                    this.parseParam(t);
                return t
            }
            parseParam(t) {
                const n = Ka(this.remaining);
                if (!n)
                    return;
                this.capture(n);
                let r = "";
                if (this.consumeOptional("=")) {
                    const i = Ka(this.remaining);
                    i && (r = i,
                    this.capture(r))
                }
                t[Xa(n)] = Xa(r)
            }
            parseQueryParam(t) {
                const n = function DP(e) {
                    const t = e.match(_P);
                    return t ? t[0] : ""
                }(this.remaining);
                if (!n)
                    return;
                this.capture(n);
                let r = "";
                if (this.consumeOptional("=")) {
                    const s = function wP(e) {
                        const t = e.match(CP);
                        return t ? t[0] : ""
                    }(this.remaining);
                    s && (r = s,
                    this.capture(r))
                }
                const i = qC(n)
                  , o = qC(r);
                if (t.hasOwnProperty(i)) {
                    let s = t[i];
                    Array.isArray(s) || (s = [s],
                    t[i] = s),
                    s.push(o)
                } else
                    t[i] = o
            }
            parseParens(t) {
                const n = {};
                for (this.capture("("); !this.consumeOptional(")") && this.remaining.length > 0; ) {
                    const r = Ka(this.remaining)
                      , i = this.remaining[r.length];
                    if ("/" !== i && ")" !== i && ";" !== i)
                        throw new Error(`Cannot parse url '${this.url}'`);
                    let o;
                    r.indexOf(":") > -1 ? (o = r.slice(0, r.indexOf(":")),
                    this.capture(o),
                    this.capture(":")) : t && (o = q);
                    const s = this.parseChildren();
                    n[o] = 1 === Object.keys(s).length ? s[q] : new Z([],s),
                    this.consumeOptional("//")
                }
                return n
            }
            peekStartsWith(t) {
                return this.remaining.startsWith(t)
            }
            consumeOptional(t) {
                return !!this.peekStartsWith(t) && (this.remaining = this.remaining.substring(t.length),
                !0)
            }
            capture(t) {
                if (!this.consumeOptional(t))
                    throw new Error(`Expected "${t}".`)
            }
        }
        class zC {
            constructor(t) {
                this._root = t
            }
            get root() {
                return this._root.value
            }
            parent(t) {
                const n = this.pathFromRoot(t);
                return n.length > 1 ? n[n.length - 2] : null
            }
            children(t) {
                const n = vf(t, this._root);
                return n ? n.children.map(r => r.value) : []
            }
            firstChild(t) {
                const n = vf(t, this._root);
                return n && n.children.length > 0 ? n.children[0].value : null
            }
            siblings(t) {
                const n = yf(t, this._root);
                return n.length < 2 ? [] : n[n.length - 2].children.map(i => i.value).filter(i => i !== t)
            }
            pathFromRoot(t) {
                return yf(t, this._root).map(n => n.value)
            }
        }
        function vf(e, t) {
            if (e === t.value)
                return t;
            for (const n of t.children) {
                const r = vf(e, n);
                if (r)
                    return r
            }
            return null
        }
        function yf(e, t) {
            if (e === t.value)
                return [t];
            for (const n of t.children) {
                const r = yf(e, n);
                if (r.length)
                    return r.unshift(t),
                    r
            }
            return []
        }
        class Gn {
            constructor(t, n) {
                this.value = t,
                this.children = n
            }
            toString() {
                return `TreeNode(${this.value})`
            }
        }
        function xi(e) {
            const t = {};
            return e && e.children.forEach(n => t[n.value.outlet] = n),
            t
        }
        class ZC extends zC {
            constructor(t, n) {
                super(t),
                this.snapshot = n,
                _f(this, t)
            }
            toString() {
                return this.snapshot.toString()
            }
        }
        function YC(e, t) {
            const n = function EP(e, t) {
                const s = new eu([],{},{},"",{},q,t,null,e.root,-1,{});
                return new QC("",new Gn(s,[]))
            }(e, t)
              , r = new Jt([new zo("",{})])
              , i = new Jt({})
              , o = new Jt({})
              , s = new Jt({})
              , a = new Jt("")
              , u = new En(r,i,s,a,o,q,t,n.root);
            return u.snapshot = n.root,
            new ZC(new Gn(u,[]),n)
        }
        class En {
            constructor(t, n, r, i, o, s, a, u) {
                this.url = t,
                this.params = n,
                this.queryParams = r,
                this.fragment = i,
                this.data = o,
                this.outlet = s,
                this.component = a,
                this._futureSnapshot = u
            }
            get routeConfig() {
                return this._futureSnapshot.routeConfig
            }
            get root() {
                return this._routerState.root
            }
            get parent() {
                return this._routerState.parent(this)
            }
            get firstChild() {
                return this._routerState.firstChild(this)
            }
            get children() {
                return this._routerState.children(this)
            }
            get pathFromRoot() {
                return this._routerState.pathFromRoot(this)
            }
            get paramMap() {
                return this._paramMap || (this._paramMap = this.params.pipe(X(t => Ti(t)))),
                this._paramMap
            }
            get queryParamMap() {
                return this._queryParamMap || (this._queryParamMap = this.queryParams.pipe(X(t => Ti(t)))),
                this._queryParamMap
            }
            toString() {
                return this.snapshot ? this.snapshot.toString() : `Future(${this._futureSnapshot})`
            }
        }
        function JC(e, t="emptyOnly") {
            const n = e.pathFromRoot;
            let r = 0;
            if ("always" !== t)
                for (r = n.length - 1; r >= 1; ) {
                    const i = n[r]
                      , o = n[r - 1];
                    if (i.routeConfig && "" === i.routeConfig.path)
                        r--;
                    else {
                        if (o.component)
                            break;
                        r--
                    }
                }
            return function SP(e) {
                return e.reduce( (t, n) => {
                    var r;
                    return {
                        params: Object.assign(Object.assign({}, t.params), n.params),
                        data: Object.assign(Object.assign({}, t.data), n.data),
                        resolve: Object.assign(Object.assign(Object.assign(Object.assign({}, n.data), t.resolve), null === (r = n.routeConfig) || void 0 === r ? void 0 : r.data), n._resolvedData)
                    }
                }
                , {
                    params: {},
                    data: {},
                    resolve: {}
                })
            }(n.slice(r))
        }
        class eu {
            constructor(t, n, r, i, o, s, a, u, l, c, d, f) {
                this.url = t,
                this.params = n,
                this.queryParams = r,
                this.fragment = i,
                this.data = o,
                this.outlet = s,
                this.component = a,
                this.routeConfig = u,
                this._urlSegment = l,
                this._lastPathIndex = c,
                this._correctedLastPathIndex = null != f ? f : c,
                this._resolve = d
            }
            get root() {
                return this._routerState.root
            }
            get parent() {
                return this._routerState.parent(this)
            }
            get firstChild() {
                return this._routerState.firstChild(this)
            }
            get children() {
                return this._routerState.children(this)
            }
            get pathFromRoot() {
                return this._routerState.pathFromRoot(this)
            }
            get paramMap() {
                return this._paramMap || (this._paramMap = Ti(this.params)),
                this._paramMap
            }
            get queryParamMap() {
                return this._queryParamMap || (this._queryParamMap = Ti(this.queryParams)),
                this._queryParamMap
            }
            toString() {
                return `Route(url:'${this.url.map(r => r.toString()).join("/")}', path:'${this.routeConfig ? this.routeConfig.path : ""}')`
            }
        }
        class QC extends zC {
            constructor(t, n) {
                super(n),
                this.url = t,
                _f(this, n)
            }
            toString() {
                return XC(this._root)
            }
        }
        function _f(e, t) {
            t.value._routerState = e,
            t.children.forEach(n => _f(e, n))
        }
        function XC(e) {
            const t = e.children.length > 0 ? ` { ${e.children.map(XC).join(", ")} } ` : "";
            return `${e.value}${t}`
        }
        function Df(e) {
            if (e.snapshot) {
                const t = e.snapshot
                  , n = e._futureSnapshot;
                e.snapshot = n,
                bn(t.queryParams, n.queryParams) || e.queryParams.next(n.queryParams),
                t.fragment !== n.fragment && e.fragment.next(n.fragment),
                bn(t.params, n.params) || e.params.next(n.params),
                function aP(e, t) {
                    if (e.length !== t.length)
                        return !1;
                    for (let n = 0; n < e.length; ++n)
                        if (!bn(e[n], t[n]))
                            return !1;
                    return !0
                }(t.url, n.url) || e.url.next(n.url),
                bn(t.data, n.data) || e.data.next(n.data)
            } else
                e.snapshot = e._futureSnapshot,
                e.data.next(e._futureSnapshot.data)
        }
        function Cf(e, t) {
            const n = bn(e.params, t.params) && function fP(e, t) {
                return Nr(e, t) && e.every( (n, r) => bn(n.parameters, t[r].parameters))
            }(e.url, t.url);
            return n && !(!e.parent != !t.parent) && (!e.parent || Cf(e.parent, t.parent))
        }
        function Yo(e, t, n) {
            if (n && e.shouldReuseRoute(t.value, n.value.snapshot)) {
                const r = n.value;
                r._futureSnapshot = t.value;
                const i = function IP(e, t, n) {
                    return t.children.map(r => {
                        for (const i of n.children)
                            if (e.shouldReuseRoute(r.value, i.value.snapshot))
                                return Yo(e, r, i);
                        return Yo(e, r)
                    }
                    )
                }(e, t, n);
                return new Gn(r,i)
            }
            {
                if (e.shouldAttach(t.value)) {
                    const o = e.retrieve(t.value);
                    if (null !== o) {
                        const s = o.route;
                        return s.value._futureSnapshot = t.value,
                        s.children = t.children.map(a => Yo(e, a)),
                        s
                    }
                }
                const r = function AP(e) {
                    return new En(new Jt(e.url),new Jt(e.params),new Jt(e.queryParams),new Jt(e.fragment),new Jt(e.data),e.outlet,e.component,e)
                }(t.value)
                  , i = t.children.map(o => Yo(e, o));
                return new Gn(r,i)
            }
        }
        function tu(e) {
            return "object" == typeof e && null != e && !e.outlets && !e.segmentPath
        }
        function Jo(e) {
            return "object" == typeof e && null != e && e.outlets
        }
        function wf(e, t, n, r, i) {
            let o = {};
            if (r && Ge(r, (a, u) => {
                o[u] = Array.isArray(a) ? a.map(l => `${l}`) : `${a}`
            }
            ),
            e === t)
                return new Fr(n,o,i);
            const s = KC(e, t, n);
            return new Fr(s,o,i)
        }
        function KC(e, t, n) {
            const r = {};
            return Ge(e.children, (i, o) => {
                r[o] = i === t ? n : KC(i, t, n)
            }
            ),
            new Z(e.segments,r)
        }
        class ew {
            constructor(t, n, r) {
                if (this.isAbsolute = t,
                this.numberOfDoubleDots = n,
                this.commands = r,
                t && r.length > 0 && tu(r[0]))
                    throw new Error("Root segment cannot have matrix parameters");
                const i = r.find(Jo);
                if (i && i !== kC(r))
                    throw new Error("{outlets:{}} has to be the last command")
            }
            toRoot() {
                return this.isAbsolute && 1 === this.commands.length && "/" == this.commands[0]
            }
        }
        class bf {
            constructor(t, n, r) {
                this.segmentGroup = t,
                this.processChildren = n,
                this.index = r
            }
        }
        function tw(e, t, n) {
            if (e || (e = new Z([],{})),
            0 === e.segments.length && e.hasChildren())
                return nu(e, t, n);
            const r = function PP(e, t, n) {
                let r = 0
                  , i = t;
                const o = {
                    match: !1,
                    pathIndex: 0,
                    commandIndex: 0
                };
                for (; i < e.segments.length; ) {
                    if (r >= n.length)
                        return o;
                    const s = e.segments[i]
                      , a = n[r];
                    if (Jo(a))
                        break;
                    const u = `${a}`
                      , l = r < n.length - 1 ? n[r + 1] : null;
                    if (i > 0 && void 0 === u)
                        break;
                    if (u && l && "object" == typeof l && void 0 === l.outlets) {
                        if (!rw(u, l, s))
                            return o;
                        r += 2
                    } else {
                        if (!rw(u, {}, s))
                            return o;
                        r++
                    }
                    i++
                }
                return {
                    match: !0,
                    pathIndex: i,
                    commandIndex: r
                }
            }(e, t, n)
              , i = n.slice(r.commandIndex);
            if (r.match && r.pathIndex < e.segments.length) {
                const o = new Z(e.segments.slice(0, r.pathIndex),{});
                return o.children[q] = new Z(e.segments.slice(r.pathIndex),e.children),
                nu(o, 0, i)
            }
            return r.match && 0 === i.length ? new Z(e.segments,{}) : r.match && !e.hasChildren() ? Ef(e, t, n) : r.match ? nu(e, 0, i) : Ef(e, t, n)
        }
        function nu(e, t, n) {
            if (0 === n.length)
                return new Z(e.segments,{});
            {
                const r = function NP(e) {
                    return Jo(e[0]) ? e[0].outlets : {
                        [q]: e
                    }
                }(n)
                  , i = {};
                return Ge(r, (o, s) => {
                    "string" == typeof o && (o = [o]),
                    null !== o && (i[s] = tw(e.children[s], t, o))
                }
                ),
                Ge(e.children, (o, s) => {
                    void 0 === r[s] && (i[s] = o)
                }
                ),
                new Z(e.segments,i)
            }
        }
        function Ef(e, t, n) {
            const r = e.segments.slice(0, t);
            let i = 0;
            for (; i < n.length; ) {
                const o = n[i];
                if (Jo(o)) {
                    const u = OP(o.outlets);
                    return new Z(r,u)
                }
                if (0 === i && tu(n[0])) {
                    r.push(new zo(e.segments[t].path,nw(n[0]))),
                    i++;
                    continue
                }
                const s = Jo(o) ? o.outlets[q] : `${o}`
                  , a = i < n.length - 1 ? n[i + 1] : null;
                s && a && tu(a) ? (r.push(new zo(s,nw(a))),
                i += 2) : (r.push(new zo(s,{})),
                i++)
            }
            return new Z(r,{})
        }
        function OP(e) {
            const t = {};
            return Ge(e, (n, r) => {
                "string" == typeof n && (n = [n]),
                null !== n && (t[r] = Ef(new Z([],{}), 0, n))
            }
            ),
            t
        }
        function nw(e) {
            const t = {};
            return Ge(e, (n, r) => t[r] = `${n}`),
            t
        }
        function rw(e, t, n) {
            return e == n.path && bn(t, n.parameters)
        }
        class kP {
            constructor() {
                this.outlet = null,
                this.route = null,
                this.resolver = null,
                this.injector = null,
                this.children = new Qo,
                this.attachRef = null
            }
        }
        class Qo {
            constructor() {
                this.contexts = new Map
            }
            onChildOutletCreated(t, n) {
                const r = this.getOrCreateContext(t);
                r.outlet = n,
                this.contexts.set(t, r)
            }
            onChildOutletDestroyed(t) {
                const n = this.getContext(t);
                n && (n.outlet = null,
                n.attachRef = null)
            }
            onOutletDeactivated() {
                const t = this.contexts;
                return this.contexts = new Map,
                t
            }
            onOutletReAttached(t) {
                this.contexts = t
            }
            getOrCreateContext(t) {
                let n = this.getContext(t);
                return n || (n = new kP,
                this.contexts.set(t, n)),
                n
            }
            getContext(t) {
                return this.contexts.get(t) || null
            }
        }
        let Sf = ( () => {
            class e {
                constructor(n, r, i, o, s) {
                    this.parentContexts = n,
                    this.location = r,
                    this.changeDetector = o,
                    this.environmentInjector = s,
                    this.activated = null,
                    this._activatedRoute = null,
                    this.activateEvents = new Ee,
                    this.deactivateEvents = new Ee,
                    this.attachEvents = new Ee,
                    this.detachEvents = new Ee,
                    this.name = i || q,
                    n.onChildOutletCreated(this.name, this)
                }
                ngOnDestroy() {
                    this.parentContexts.onChildOutletDestroyed(this.name)
                }
                ngOnInit() {
                    if (!this.activated) {
                        const n = this.parentContexts.getContext(this.name);
                        n && n.route && (n.attachRef ? this.attach(n.attachRef, n.route) : this.activateWith(n.route, n.injector))
                    }
                }
                get isActivated() {
                    return !!this.activated
                }
                get component() {
                    if (!this.activated)
                        throw new Error("Outlet is not activated");
                    return this.activated.instance
                }
                get activatedRoute() {
                    if (!this.activated)
                        throw new Error("Outlet is not activated");
                    return this._activatedRoute
                }
                get activatedRouteData() {
                    return this._activatedRoute ? this._activatedRoute.snapshot.data : {}
                }
                detach() {
                    if (!this.activated)
                        throw new Error("Outlet is not activated");
                    this.location.detach();
                    const n = this.activated;
                    return this.activated = null,
                    this._activatedRoute = null,
                    this.detachEvents.emit(n.instance),
                    n
                }
                attach(n, r) {
                    this.activated = n,
                    this._activatedRoute = r,
                    this.location.insert(n.hostView),
                    this.attachEvents.emit(n.instance)
                }
                deactivate() {
                    if (this.activated) {
                        const n = this.component;
                        this.activated.destroy(),
                        this.activated = null,
                        this._activatedRoute = null,
                        this.deactivateEvents.emit(n)
                    }
                }
                activateWith(n, r) {
                    if (this.isActivated)
                        throw new Error("Cannot activate an already activated outlet");
                    this._activatedRoute = n;
                    const i = this.location
                      , s = n._futureSnapshot.component
                      , a = this.parentContexts.getOrCreateContext(this.name).children
                      , u = new LP(n,a,i.injector);
                    if (r && function VP(e) {
                        return !!e.resolveComponentFactory
                    }(r)) {
                        const l = r.resolveComponentFactory(s);
                        this.activated = i.createComponent(l, i.length, u)
                    } else
                        this.activated = i.createComponent(s, {
                            index: i.length,
                            injector: u,
                            environmentInjector: null != r ? r : this.environmentInjector
                        });
                    this.changeDetector.markForCheck(),
                    this.activateEvents.emit(this.activated.instance)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(Qo),_(zt),function Yi(e) {
                    return function Hb(e, t) {
                        if ("class" === t)
                            return e.classes;
                        if ("style" === t)
                            return e.styles;
                        const n = e.attrs;
                        if (n) {
                            const r = n.length;
                            let i = 0;
                            for (; i < r; ) {
                                const o = n[i];
                                if (ip(o))
                                    break;
                                if (0 === o)
                                    i += 2;
                                else if ("number" == typeof o)
                                    for (i++; i < r && "string" == typeof n[i]; )
                                        i++;
                                else {
                                    if (o === t)
                                        return n[i + 1];
                                    i += 2
                                }
                            }
                        }
                        return null
                    }(Oe(), e)
                }("name"),_(ma),_(Cr))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["router-outlet"]],
                outputs: {
                    activateEvents: "activate",
                    deactivateEvents: "deactivate",
                    attachEvents: "attach",
                    detachEvents: "detach"
                },
                exportAs: ["outlet"]
            }),
            e
        }
        )();
        class LP {
            constructor(t, n, r) {
                this.route = t,
                this.childContexts = n,
                this.parent = r
            }
            get(t, n) {
                return t === En ? this.route : t === Qo ? this.childContexts : this.parent.get(t, n)
            }
        }
        let iw = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["ng-component"]],
                decls: 1,
                vars: 0,
                template: function(n, r) {
                    1 & n && Gt(0, "router-outlet")
                },
                dependencies: [Sf],
                encapsulation: 2
            }),
            e
        }
        )();
        function ow(e, t) {
            var n;
            return e.providers && !e._injector && (e._injector = ua(e.providers, t, `Route: ${e.path}`)),
            null !== (n = e._injector) && void 0 !== n ? n : t
        }
        function If(e) {
            const t = e.children && e.children.map(If)
              , n = t ? Object.assign(Object.assign({}, e), {
                children: t
            }) : Object.assign({}, e);
            return !n.component && !n.loadComponent && (t || n.loadChildren) && n.outlet && n.outlet !== q && (n.component = iw),
            n
        }
        function Pt(e) {
            return e.outlet || q
        }
        function sw(e, t) {
            const n = e.filter(r => Pt(r) === t);
            return n.push(...e.filter(r => Pt(r) !== t)),
            n
        }
        function aw(e) {
            var t;
            if (!e)
                return null;
            if (null !== (t = e.routeConfig) && void 0 !== t && t._injector)
                return e.routeConfig._injector;
            for (let n = e.parent; n; n = n.parent) {
                const r = n.routeConfig;
                if (null != r && r._loadedInjector)
                    return r._loadedInjector;
                if (null != r && r._injector)
                    return r._injector
            }
            return null
        }
        class $P {
            constructor(t, n, r, i) {
                this.routeReuseStrategy = t,
                this.futureState = n,
                this.currState = r,
                this.forwardEvent = i
            }
            activate(t) {
                const n = this.futureState._root
                  , r = this.currState ? this.currState._root : null;
                this.deactivateChildRoutes(n, r, t),
                Df(this.futureState.root),
                this.activateChildRoutes(n, r, t)
            }
            deactivateChildRoutes(t, n, r) {
                const i = xi(n);
                t.children.forEach(o => {
                    const s = o.value.outlet;
                    this.deactivateRoutes(o, i[s], r),
                    delete i[s]
                }
                ),
                Ge(i, (o, s) => {
                    this.deactivateRouteAndItsChildren(o, r)
                }
                )
            }
            deactivateRoutes(t, n, r) {
                const i = t.value
                  , o = n ? n.value : null;
                if (i === o)
                    if (i.component) {
                        const s = r.getContext(i.outlet);
                        s && this.deactivateChildRoutes(t, n, s.children)
                    } else
                        this.deactivateChildRoutes(t, n, r);
                else
                    o && this.deactivateRouteAndItsChildren(n, r)
            }
            deactivateRouteAndItsChildren(t, n) {
                t.value.component && this.routeReuseStrategy.shouldDetach(t.value.snapshot) ? this.detachAndStoreRouteSubtree(t, n) : this.deactivateRouteAndOutlet(t, n)
            }
            detachAndStoreRouteSubtree(t, n) {
                const r = n.getContext(t.value.outlet)
                  , i = r && t.value.component ? r.children : n
                  , o = xi(t);
                for (const s of Object.keys(o))
                    this.deactivateRouteAndItsChildren(o[s], i);
                if (r && r.outlet) {
                    const s = r.outlet.detach()
                      , a = r.children.onOutletDeactivated();
                    this.routeReuseStrategy.store(t.value.snapshot, {
                        componentRef: s,
                        route: t,
                        contexts: a
                    })
                }
            }
            deactivateRouteAndOutlet(t, n) {
                const r = n.getContext(t.value.outlet)
                  , i = r && t.value.component ? r.children : n
                  , o = xi(t);
                for (const s of Object.keys(o))
                    this.deactivateRouteAndItsChildren(o[s], i);
                r && r.outlet && (r.outlet.deactivate(),
                r.children.onOutletDeactivated(),
                r.attachRef = null,
                r.resolver = null,
                r.route = null)
            }
            activateChildRoutes(t, n, r) {
                const i = xi(n);
                t.children.forEach(o => {
                    this.activateRoutes(o, i[o.value.outlet], r),
                    this.forwardEvent(new rP(o.value.snapshot))
                }
                ),
                t.children.length && this.forwardEvent(new tP(t.value.snapshot))
            }
            activateRoutes(t, n, r) {
                var i;
                const o = t.value
                  , s = n ? n.value : null;
                if (Df(o),
                o === s)
                    if (o.component) {
                        const a = r.getOrCreateContext(o.outlet);
                        this.activateChildRoutes(t, n, a.children)
                    } else
                        this.activateChildRoutes(t, n, r);
                else if (o.component) {
                    const a = r.getOrCreateContext(o.outlet);
                    if (this.routeReuseStrategy.shouldAttach(o.snapshot)) {
                        const u = this.routeReuseStrategy.retrieve(o.snapshot);
                        this.routeReuseStrategy.store(o.snapshot, null),
                        a.children.onOutletReAttached(u.contexts),
                        a.attachRef = u.componentRef,
                        a.route = u.route.value,
                        a.outlet && a.outlet.attach(u.componentRef, u.route.value),
                        Df(u.route.value),
                        this.activateChildRoutes(t, null, a.children)
                    } else {
                        const u = aw(o.snapshot)
                          , l = null !== (i = null == u ? void 0 : u.get(bo)) && void 0 !== i ? i : null;
                        a.attachRef = null,
                        a.route = o,
                        a.resolver = l,
                        a.injector = u,
                        a.outlet && a.outlet.activateWith(o, a.injector),
                        this.activateChildRoutes(t, null, a.children)
                    }
                } else
                    this.activateChildRoutes(t, null, r)
            }
        }
        function ur(e) {
            return "function" == typeof e
        }
        function Pr(e) {
            return e instanceof Fr
        }
        const Xo = Symbol("INITIAL_VALUE");
        function Ko() {
            return xr(e => SC(e.map(t => t.pipe(ji(1), function HN(...e) {
                const t = Vi(e);
                return He( (n, r) => {
                    (t ? lf(e, n, t) : lf(e, n)).subscribe(r)
                }
                )
            }(Xo)))).pipe(TC( (t, n) => {
                let r = !1;
                return n.reduce( (i, o, s) => i !== Xo ? i : (o === Xo && (r = !0),
                r || !1 !== o && s !== n.length - 1 && !Pr(o) ? i : o), t)
            }
            , Xo), Tr(t => t !== Xo), X(t => Pr(t) ? t : !0 === t), ji(1)))
        }
        const uw = {
            matched: !1,
            consumedSegments: [],
            remainingSegments: [],
            parameters: {},
            positionalParamSegments: {}
        };
        function ru(e, t, n) {
            var r;
            if ("" === t.path)
                return "full" === t.pathMatch && (e.hasChildren() || n.length > 0) ? Object.assign({}, uw) : {
                    matched: !0,
                    consumedSegments: [],
                    remainingSegments: n,
                    parameters: {},
                    positionalParamSegments: {}
                };
            const o = (t.matcher || sP)(n, e, t);
            if (!o)
                return Object.assign({}, uw);
            const s = {};
            Ge(o.posParams, (u, l) => {
                s[l] = u.path
            }
            );
            const a = o.consumed.length > 0 ? Object.assign(Object.assign({}, s), o.consumed[o.consumed.length - 1].parameters) : s;
            return {
                matched: !0,
                consumedSegments: o.consumed,
                remainingSegments: n.slice(o.consumed.length),
                parameters: a,
                positionalParamSegments: null !== (r = o.posParams) && void 0 !== r ? r : {}
            }
        }
        function iu(e, t, n, r, i="corrected") {
            if (n.length > 0 && function QP(e, t, n) {
                return n.some(r => ou(e, t, r) && Pt(r) !== q)
            }(e, n, r)) {
                const s = new Z(t,function JP(e, t, n, r) {
                    const i = {};
                    i[q] = r,
                    r._sourceSegment = e,
                    r._segmentIndexShift = t.length;
                    for (const o of n)
                        if ("" === o.path && Pt(o) !== q) {
                            const s = new Z([],{});
                            s._sourceSegment = e,
                            s._segmentIndexShift = t.length,
                            i[Pt(o)] = s
                        }
                    return i
                }(e, t, r, new Z(n,e.children)));
                return s._sourceSegment = e,
                s._segmentIndexShift = t.length,
                {
                    segmentGroup: s,
                    slicedSegments: []
                }
            }
            if (0 === n.length && function XP(e, t, n) {
                return n.some(r => ou(e, t, r))
            }(e, n, r)) {
                const s = new Z(e.segments,function YP(e, t, n, r, i, o) {
                    const s = {};
                    for (const a of r)
                        if (ou(e, n, a) && !i[Pt(a)]) {
                            const u = new Z([],{});
                            u._sourceSegment = e,
                            u._segmentIndexShift = "legacy" === o ? e.segments.length : t.length,
                            s[Pt(a)] = u
                        }
                    return Object.assign(Object.assign({}, i), s)
                }(e, t, n, r, e.children, i));
                return s._sourceSegment = e,
                s._segmentIndexShift = t.length,
                {
                    segmentGroup: s,
                    slicedSegments: n
                }
            }
            const o = new Z(e.segments,e.children);
            return o._sourceSegment = e,
            o._segmentIndexShift = t.length,
            {
                segmentGroup: o,
                slicedSegments: n
            }
        }
        function ou(e, t, n) {
            return (!(e.hasChildren() || t.length > 0) || "full" !== n.pathMatch) && "" === n.path
        }
        function lw(e, t, n, r) {
            return !!(Pt(e) === r || r !== q && ou(t, n, e)) && ("**" === e.path || ru(t, e, n).matched)
        }
        function cw(e, t, n) {
            return 0 === t.length && !e.children[n]
        }
        class su {
            constructor(t) {
                this.segmentGroup = t || null
            }
        }
        class dw {
            constructor(t) {
                this.urlTree = t
            }
        }
        function es(e) {
            return Go(new su(e))
        }
        function fw(e) {
            return Go(new dw(e))
        }
        class nO {
            constructor(t, n, r, i, o) {
                this.injector = t,
                this.configLoader = n,
                this.urlSerializer = r,
                this.urlTree = i,
                this.config = o,
                this.allowRedirects = !0
            }
            apply() {
                const t = iu(this.urlTree.root, [], [], this.config).segmentGroup
                  , n = new Z(t.segments,t.children);
                return this.expandSegmentGroup(this.injector, this.config, n, q).pipe(X(o => this.createUrlTree(Af(o), this.urlTree.queryParams, this.urlTree.fragment))).pipe(ar(o => {
                    if (o instanceof dw)
                        return this.allowRedirects = !1,
                        this.match(o.urlTree);
                    throw o instanceof su ? this.noMatchError(o) : o
                }
                ))
            }
            match(t) {
                return this.expandSegmentGroup(this.injector, this.config, t.root, q).pipe(X(i => this.createUrlTree(Af(i), t.queryParams, t.fragment))).pipe(ar(i => {
                    throw i instanceof su ? this.noMatchError(i) : i
                }
                ))
            }
            noMatchError(t) {
                return new Error(`Cannot match any routes. URL Segment: '${t.segmentGroup}'`)
            }
            createUrlTree(t, n, r) {
                const i = t.segments.length > 0 ? new Z([],{
                    [q]: t
                }) : t;
                return new Fr(i,n,r)
            }
            expandSegmentGroup(t, n, r, i) {
                return 0 === r.segments.length && r.hasChildren() ? this.expandChildren(t, n, r).pipe(X(o => new Z([],o))) : this.expandSegment(t, r, n, r.segments, i, !0)
            }
            expandChildren(t, n, r) {
                const i = [];
                for (const o of Object.keys(r.children))
                    "primary" === o ? i.unshift(o) : i.push(o);
                return Pe(i).pipe(Ai(o => {
                    const s = r.children[o]
                      , a = sw(n, o);
                    return this.expandSegmentGroup(t, a, s, o).pipe(X(u => ({
                        segment: u,
                        outlet: o
                    })))
                }
                ), TC( (o, s) => (o[s.outlet] = s.segment,
                o), {}), function GN(e, t) {
                    const n = arguments.length >= 2;
                    return r => r.pipe(e ? Tr( (i, o) => e(i, o, r)) : fr, df(1), n ? ff(t) : xC( () => new qo))
                }())
            }
            expandSegment(t, n, r, i, o, s) {
                return Pe(r).pipe(Ai(a => this.expandSegmentAgainstRoute(t, n, r, a, i, o, s).pipe(ar(l => {
                    if (l instanceof su)
                        return V(null);
                    throw l
                }
                ))), Rr(a => !!a), ar( (a, u) => {
                    if (a instanceof qo || "EmptyError" === a.name)
                        return cw(n, i, o) ? V(new Z([],{})) : es(n);
                    throw a
                }
                ))
            }
            expandSegmentAgainstRoute(t, n, r, i, o, s, a) {
                return lw(i, n, o, s) ? void 0 === i.redirectTo ? this.matchSegmentAgainstRoute(t, n, i, o, s) : a && this.allowRedirects ? this.expandSegmentAgainstRouteUsingRedirect(t, n, r, i, o, s) : es(n) : es(n)
            }
            expandSegmentAgainstRouteUsingRedirect(t, n, r, i, o, s) {
                return "**" === i.path ? this.expandWildCardWithParamsAgainstRouteUsingRedirect(t, r, i, s) : this.expandRegularSegmentAgainstRouteUsingRedirect(t, n, r, i, o, s)
            }
            expandWildCardWithParamsAgainstRouteUsingRedirect(t, n, r, i) {
                const o = this.applyRedirectCommands([], r.redirectTo, {});
                return r.redirectTo.startsWith("/") ? fw(o) : this.lineralizeSegments(r, o).pipe(Ue(s => {
                    const a = new Z(s,{});
                    return this.expandSegment(t, a, n, s, i, !1)
                }
                ))
            }
            expandRegularSegmentAgainstRouteUsingRedirect(t, n, r, i, o, s) {
                const {matched: a, consumedSegments: u, remainingSegments: l, positionalParamSegments: c} = ru(n, i, o);
                if (!a)
                    return es(n);
                const d = this.applyRedirectCommands(u, i.redirectTo, c);
                return i.redirectTo.startsWith("/") ? fw(d) : this.lineralizeSegments(i, d).pipe(Ue(f => this.expandSegment(t, n, r, f.concat(l), s, !1)))
            }
            matchSegmentAgainstRoute(t, n, r, i, o) {
                if ("**" === r.path)
                    return t = ow(r, t),
                    r.loadChildren ? (r._loadedRoutes ? V({
                        routes: r._loadedRoutes,
                        injector: r._loadedInjector
                    }) : this.configLoader.loadChildren(t, r)).pipe(X(d => (r._loadedRoutes = d.routes,
                    r._loadedInjector = d.injector,
                    new Z(i,{})))) : V(new Z(i,{}));
                const {matched: s, consumedSegments: a, remainingSegments: u} = ru(n, r, i);
                return s ? (t = ow(r, t),
                this.getChildConfig(t, r, i).pipe(Ue(c => {
                    var d;
                    const f = null !== (d = c.injector) && void 0 !== d ? d : t
                      , h = c.routes
                      , {segmentGroup: p, slicedSegments: g} = iu(n, a, u, h)
                      , v = new Z(p.segments,p.children);
                    if (0 === g.length && v.hasChildren())
                        return this.expandChildren(f, h, v).pipe(X(E => new Z(a,E)));
                    if (0 === h.length && 0 === g.length)
                        return V(new Z(a,{}));
                    const m = Pt(r) === o;
                    return this.expandSegment(f, v, h, g, m ? q : o, !0).pipe(X(y => new Z(a.concat(y.segments),y.children)))
                }
                ))) : es(n)
            }
            getChildConfig(t, n, r) {
                return n.children ? V({
                    routes: n.children,
                    injector: t
                }) : n.loadChildren ? void 0 !== n._loadedRoutes ? V({
                    routes: n._loadedRoutes,
                    injector: n._loadedInjector
                }) : this.runCanLoadGuards(t, n, r).pipe(Ue(i => i ? this.configLoader.loadChildren(t, n).pipe(Xe(o => {
                    n._loadedRoutes = o.routes,
                    n._loadedInjector = o.injector
                }
                )) : function eO(e) {
                    return Go(gf(`Cannot load children because the guard of the route "path: '${e.path}'" returned false`))
                }(n))) : V({
                    routes: [],
                    injector: t
                })
            }
            runCanLoadGuards(t, n, r) {
                const i = n.canLoad;
                return i && 0 !== i.length ? V(i.map(s => {
                    const a = t.get(s);
                    let u;
                    if (function qP(e) {
                        return e && ur(e.canLoad)
                    }(a))
                        u = a.canLoad(n, r);
                    else {
                        if (!ur(a))
                            throw new Error("Invalid CanLoad guard");
                        u = a(n, r)
                    }
                    return Qt(u)
                }
                )).pipe(Ko(), Xe(s => {
                    if (!Pr(s))
                        return;
                    const a = gf(`Redirecting to "${this.urlSerializer.serialize(s)}"`);
                    throw a.url = s,
                    a
                }
                ), X(s => !0 === s)) : V(!0)
            }
            lineralizeSegments(t, n) {
                let r = []
                  , i = n.root;
                for (; ; ) {
                    if (r = r.concat(i.segments),
                    0 === i.numberOfChildren)
                        return V(r);
                    if (i.numberOfChildren > 1 || !i.children[q])
                        return Go(new Error(`Only absolute redirects can have named outlets. redirectTo: '${t.redirectTo}'`));
                    i = i.children[q]
                }
            }
            applyRedirectCommands(t, n, r) {
                return this.applyRedirectCreatreUrlTree(n, this.urlSerializer.parse(n), t, r)
            }
            applyRedirectCreatreUrlTree(t, n, r, i) {
                const o = this.createSegmentGroup(t, n.root, r, i);
                return new Fr(o,this.createQueryParams(n.queryParams, this.urlTree.queryParams),n.fragment)
            }
            createQueryParams(t, n) {
                const r = {};
                return Ge(t, (i, o) => {
                    if ("string" == typeof i && i.startsWith(":")) {
                        const a = i.substring(1);
                        r[o] = n[a]
                    } else
                        r[o] = i
                }
                ),
                r
            }
            createSegmentGroup(t, n, r, i) {
                const o = this.createSegments(t, n.segments, r, i);
                let s = {};
                return Ge(n.children, (a, u) => {
                    s[u] = this.createSegmentGroup(t, a, r, i)
                }
                ),
                new Z(o,s)
            }
            createSegments(t, n, r, i) {
                return n.map(o => o.path.startsWith(":") ? this.findPosParam(t, o, i) : this.findOrReturn(o, r))
            }
            findPosParam(t, n, r) {
                const i = r[n.path.substring(1)];
                if (!i)
                    throw new Error(`Cannot redirect to '${t}'. Cannot find '${n.path}'.`);
                return i
            }
            findOrReturn(t, n) {
                let r = 0;
                for (const i of n) {
                    if (i.path === t.path)
                        return n.splice(r),
                        i;
                    r++
                }
                return t
            }
        }
        function Af(e) {
            const t = {};
            for (const r of Object.keys(e.children)) {
                const o = Af(e.children[r]);
                (o.segments.length > 0 || o.hasChildren()) && (t[r] = o)
            }
            return function rO(e) {
                if (1 === e.numberOfChildren && e.children[q]) {
                    const t = e.children[q];
                    return new Z(e.segments.concat(t.segments),t.children)
                }
                return e
            }(new Z(e.segments,t))
        }
        class hw {
            constructor(t) {
                this.path = t,
                this.route = this.path[this.path.length - 1]
            }
        }
        class au {
            constructor(t, n) {
                this.component = t,
                this.route = n
            }
        }
        function oO(e, t, n) {
            const r = e._root;
            return ts(r, t ? t._root : null, n, [r.value])
        }
        function uu(e, t, n) {
            const r = aw(t);
            return (null != r ? r : n).get(e)
        }
        function ts(e, t, n, r, i={
            canDeactivateChecks: [],
            canActivateChecks: []
        }) {
            const o = xi(t);
            return e.children.forEach(s => {
                (function aO(e, t, n, r, i={
                    canDeactivateChecks: [],
                    canActivateChecks: []
                }) {
                    const o = e.value
                      , s = t ? t.value : null
                      , a = n ? n.getContext(e.value.outlet) : null;
                    if (s && o.routeConfig === s.routeConfig) {
                        const u = function uO(e, t, n) {
                            if ("function" == typeof n)
                                return n(e, t);
                            switch (n) {
                            case "pathParamsChange":
                                return !Nr(e.url, t.url);
                            case "pathParamsOrQueryParamsChange":
                                return !Nr(e.url, t.url) || !bn(e.queryParams, t.queryParams);
                            case "always":
                                return !0;
                            case "paramsOrQueryParamsChange":
                                return !Cf(e, t) || !bn(e.queryParams, t.queryParams);
                            default:
                                return !Cf(e, t)
                            }
                        }(s, o, o.routeConfig.runGuardsAndResolvers);
                        u ? i.canActivateChecks.push(new hw(r)) : (o.data = s.data,
                        o._resolvedData = s._resolvedData),
                        ts(e, t, o.component ? a ? a.children : null : n, r, i),
                        u && a && a.outlet && a.outlet.isActivated && i.canDeactivateChecks.push(new au(a.outlet.component,s))
                    } else
                        s && ns(t, a, i),
                        i.canActivateChecks.push(new hw(r)),
                        ts(e, null, o.component ? a ? a.children : null : n, r, i)
                }
                )(s, o[s.value.outlet], n, r.concat([s.value]), i),
                delete o[s.value.outlet]
            }
            ),
            Ge(o, (s, a) => ns(s, n.getContext(a), i)),
            i
        }
        function ns(e, t, n) {
            const r = xi(e)
              , i = e.value;
            Ge(r, (o, s) => {
                ns(o, i.component ? t ? t.children.getContext(s) : null : t, n)
            }
            ),
            n.canDeactivateChecks.push(new au(i.component && t && t.outlet && t.outlet.isActivated ? t.outlet.component : null,i))
        }
        class vO {
        }
        function gw(e) {
            return new Me(t => t.error(e))
        }
        class _O {
            constructor(t, n, r, i, o, s) {
                this.rootComponentType = t,
                this.config = n,
                this.urlTree = r,
                this.url = i,
                this.paramsInheritanceStrategy = o,
                this.relativeLinkResolution = s
            }
            recognize() {
                const t = iu(this.urlTree.root, [], [], this.config.filter(s => void 0 === s.redirectTo), this.relativeLinkResolution).segmentGroup
                  , n = this.processSegmentGroup(this.config, t, q);
                if (null === n)
                    return null;
                const r = new eu([],Object.freeze({}),Object.freeze(Object.assign({}, this.urlTree.queryParams)),this.urlTree.fragment,{},q,this.rootComponentType,null,this.urlTree.root,-1,{})
                  , i = new Gn(r,n)
                  , o = new QC(this.url,i);
                return this.inheritParamsAndData(o._root),
                o
            }
            inheritParamsAndData(t) {
                const n = t.value
                  , r = JC(n, this.paramsInheritanceStrategy);
                n.params = Object.freeze(r.params),
                n.data = Object.freeze(r.data),
                t.children.forEach(i => this.inheritParamsAndData(i))
            }
            processSegmentGroup(t, n, r) {
                return 0 === n.segments.length && n.hasChildren() ? this.processChildren(t, n) : this.processSegment(t, n, n.segments, r)
            }
            processChildren(t, n) {
                const r = [];
                for (const o of Object.keys(n.children)) {
                    const s = n.children[o]
                      , a = sw(t, o)
                      , u = this.processSegmentGroup(a, s, o);
                    if (null === u)
                        return null;
                    r.push(...u)
                }
                const i = mw(r);
                return function DO(e) {
                    e.sort( (t, n) => t.value.outlet === q ? -1 : n.value.outlet === q ? 1 : t.value.outlet.localeCompare(n.value.outlet))
                }(i),
                i
            }
            processSegment(t, n, r, i) {
                for (const o of t) {
                    const s = this.processSegmentAgainstRoute(o, n, r, i);
                    if (null !== s)
                        return s
                }
                return cw(n, r, i) ? [] : null
            }
            processSegmentAgainstRoute(t, n, r, i) {
                var o, s, a, u;
                if (t.redirectTo || !lw(t, n, r, i))
                    return null;
                let l, c = [], d = [];
                if ("**" === t.path) {
                    const m = r.length > 0 ? kC(r).parameters : {}
                      , C = yw(n) + r.length;
                    l = new eu(r,m,Object.freeze(Object.assign({}, this.urlTree.queryParams)),this.urlTree.fragment,Dw(t),Pt(t),null !== (s = null !== (o = t.component) && void 0 !== o ? o : t._loadedComponent) && void 0 !== s ? s : null,t,vw(n),C,Cw(t),C)
                } else {
                    const m = ru(n, t, r);
                    if (!m.matched)
                        return null;
                    c = m.consumedSegments,
                    d = m.remainingSegments;
                    const C = yw(n) + c.length;
                    l = new eu(c,m.parameters,Object.freeze(Object.assign({}, this.urlTree.queryParams)),this.urlTree.fragment,Dw(t),Pt(t),null !== (u = null !== (a = t.component) && void 0 !== a ? a : t._loadedComponent) && void 0 !== u ? u : null,t,vw(n),C,Cw(t),C)
                }
                const f = function CO(e) {
                    return e.children ? e.children : e.loadChildren ? e._loadedRoutes : []
                }(t)
                  , {segmentGroup: h, slicedSegments: p} = iu(n, c, d, f.filter(m => void 0 === m.redirectTo), this.relativeLinkResolution);
                if (0 === p.length && h.hasChildren()) {
                    const m = this.processChildren(f, h);
                    return null === m ? null : [new Gn(l,m)]
                }
                if (0 === f.length && 0 === p.length)
                    return [new Gn(l,[])];
                const g = Pt(t) === i
                  , v = this.processSegment(f, h, p, g ? q : i);
                return null === v ? null : [new Gn(l,v)]
            }
        }
        function wO(e) {
            const t = e.value.routeConfig;
            return t && "" === t.path && void 0 === t.redirectTo
        }
        function mw(e) {
            const t = []
              , n = new Set;
            for (const r of e) {
                if (!wO(r)) {
                    t.push(r);
                    continue
                }
                const i = t.find(o => r.value.routeConfig === o.value.routeConfig);
                void 0 !== i ? (i.children.push(...r.children),
                n.add(i)) : t.push(r)
            }
            for (const r of n) {
                const i = mw(r.children);
                t.push(new Gn(r.value,i))
            }
            return t.filter(r => !n.has(r))
        }
        function vw(e) {
            let t = e;
            for (; t._sourceSegment; )
                t = t._sourceSegment;
            return t
        }
        function yw(e) {
            var t, n;
            let r = e
              , i = null !== (t = r._segmentIndexShift) && void 0 !== t ? t : 0;
            for (; r._sourceSegment; )
                r = r._sourceSegment,
                i += null !== (n = r._segmentIndexShift) && void 0 !== n ? n : 0;
            return i - 1
        }
        function Dw(e) {
            return e.data || {}
        }
        function Cw(e) {
            return e.resolve || {}
        }
        const Tf = Symbol("RouteTitle");
        function ww(e) {
            return "string" == typeof e.title || null === e.title
        }
        function xf(e) {
            return xr(t => {
                const n = e(t);
                return n ? Pe(n).pipe(X( () => t)) : V(t)
            }
            )
        }
        class RO extends class xO {
            shouldDetach(t) {
                return !1
            }
            store(t, n) {}
            shouldAttach(t) {
                return !1
            }
            retrieve(t) {
                return null
            }
            shouldReuseRoute(t, n) {
                return t.routeConfig === n.routeConfig
            }
        }
        {
        }
        const Rf = new N("ROUTES");
        let Ff = ( () => {
            class e {
                constructor(n, r) {
                    this.injector = n,
                    this.compiler = r,
                    this.componentLoaders = new WeakMap,
                    this.childrenLoaders = new WeakMap
                }
                loadComponent(n) {
                    if (this.componentLoaders.get(n))
                        return this.componentLoaders.get(n);
                    if (n._loadedComponent)
                        return V(n._loadedComponent);
                    this.onLoadStartListener && this.onLoadStartListener(n);
                    const r = Qt(n.loadComponent()).pipe(Xe(o => {
                        this.onLoadEndListener && this.onLoadEndListener(n),
                        n._loadedComponent = o
                    }
                    ), hf( () => {
                        this.componentLoaders.delete(n)
                    }
                    ))
                      , i = new AC(r, () => new en).pipe(cf());
                    return this.componentLoaders.set(n, i),
                    i
                }
                loadChildren(n, r) {
                    if (this.childrenLoaders.get(r))
                        return this.childrenLoaders.get(r);
                    if (r._loadedRoutes)
                        return V({
                            routes: r._loadedRoutes,
                            injector: r._loadedInjector
                        });
                    this.onLoadStartListener && this.onLoadStartListener(r);
                    const o = this.loadModuleFactoryOrRoutes(r.loadChildren).pipe(X(a => {
                        this.onLoadEndListener && this.onLoadEndListener(r);
                        let u, l, c = !1;
                        Array.isArray(a) ? l = a : (u = a.create(n).injector,
                        l = OC(u.get(Rf, [], A.Self | A.Optional)));
                        return {
                            routes: l.map(If),
                            injector: u
                        }
                    }
                    ), hf( () => {
                        this.childrenLoaders.delete(r)
                    }
                    ))
                      , s = new AC(o, () => new en).pipe(cf());
                    return this.childrenLoaders.set(r, s),
                    s
                }
                loadModuleFactoryOrRoutes(n) {
                    return Qt(n()).pipe(Ue(r => r instanceof ly || Array.isArray(r) ? V(r) : Pe(this.compiler.compileModuleAsync(r))))
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Ye),S(Qc))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        class NO {
            shouldProcessUrl(t) {
                return !0
            }
            extract(t) {
                return t
            }
            merge(t, n) {
                return t
            }
        }
        function OO(e) {
            throw e
        }
        function kO(e, t, n) {
            return t.parse("/")
        }
        const LO = {
            paths: "exact",
            fragment: "ignored",
            matrixParams: "ignored",
            queryParams: "exact"
        }
          , VO = {
            paths: "subset",
            fragment: "ignored",
            matrixParams: "ignored",
            queryParams: "subset"
        };
        let qe = ( () => {
            class e {
                constructor(n, r, i, o, s, a, u) {
                    this.rootComponentType = n,
                    this.urlSerializer = r,
                    this.rootContexts = i,
                    this.location = o,
                    this.config = u,
                    this.lastSuccessfulNavigation = null,
                    this.currentNavigation = null,
                    this.disposed = !1,
                    this.navigationId = 0,
                    this.currentPageId = 0,
                    this.isNgZoneEnabled = !1,
                    this.events = new en,
                    this.errorHandler = OO,
                    this.malformedUriErrorHandler = kO,
                    this.navigated = !1,
                    this.lastSuccessfulId = -1,
                    this.afterPreactivation = () => V(void 0),
                    this.urlHandlingStrategy = new NO,
                    this.routeReuseStrategy = new RO,
                    this.onSameUrlNavigation = "ignore",
                    this.paramsInheritanceStrategy = "emptyOnly",
                    this.urlUpdateStrategy = "deferred",
                    this.relativeLinkResolution = "corrected",
                    this.canceledNavigationResolution = "replace",
                    this.configLoader = s.get(Ff),
                    this.configLoader.onLoadEndListener = f => this.triggerEvent(new KN(f)),
                    this.configLoader.onLoadStartListener = f => this.triggerEvent(new XN(f)),
                    this.ngModule = s.get(er),
                    this.console = s.get(x1);
                    const d = s.get(xe);
                    this.isNgZoneEnabled = d instanceof xe && xe.isInAngularZone(),
                    this.resetConfig(u),
                    this.currentUrlTree = function uP() {
                        return new Fr(new Z([],{}),{},null)
                    }(),
                    this.rawUrlTree = this.currentUrlTree,
                    this.browserUrlTree = this.currentUrlTree,
                    this.routerState = YC(this.currentUrlTree, this.rootComponentType),
                    this.transitions = new Jt({
                        id: 0,
                        targetPageId: 0,
                        currentUrlTree: this.currentUrlTree,
                        currentRawUrl: this.currentUrlTree,
                        extractedUrl: this.urlHandlingStrategy.extract(this.currentUrlTree),
                        urlAfterRedirects: this.urlHandlingStrategy.extract(this.currentUrlTree),
                        rawUrl: this.currentUrlTree,
                        extras: {},
                        resolve: null,
                        reject: null,
                        promise: Promise.resolve(!0),
                        source: "imperative",
                        restoredState: null,
                        currentSnapshot: this.routerState.snapshot,
                        targetSnapshot: null,
                        currentRouterState: this.routerState,
                        targetRouterState: null,
                        guards: {
                            canActivateChecks: [],
                            canDeactivateChecks: []
                        },
                        guardsResult: null
                    }),
                    this.navigations = this.setupNavigations(this.transitions),
                    this.processNavigations()
                }
                get browserPageId() {
                    var n;
                    return null === (n = this.location.getState()) || void 0 === n ? void 0 : n.\u0275routerPageId
                }
                setupNavigations(n) {
                    const r = this.events;
                    return n.pipe(Tr(i => 0 !== i.id), X(i => Object.assign(Object.assign({}, i), {
                        extractedUrl: this.urlHandlingStrategy.extract(i.rawUrl)
                    })), xr(i => {
                        let o = !1
                          , s = !1;
                        return V(i).pipe(Xe(a => {
                            this.currentNavigation = {
                                id: a.id,
                                initialUrl: a.rawUrl,
                                extractedUrl: a.extractedUrl,
                                trigger: a.source,
                                extras: a.extras,
                                previousNavigation: this.lastSuccessfulNavigation ? Object.assign(Object.assign({}, this.lastSuccessfulNavigation), {
                                    previousNavigation: null
                                }) : null
                            }
                        }
                        ), xr(a => {
                            const u = this.browserUrlTree.toString()
                              , l = !this.navigated || a.extractedUrl.toString() !== u || u !== this.currentUrlTree.toString();
                            if (("reload" === this.onSameUrlNavigation || l) && this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))
                                return Ew(a.source) && (this.browserUrlTree = a.extractedUrl),
                                V(a).pipe(xr(d => {
                                    const f = this.transitions.getValue();
                                    return r.next(new pf(d.id,this.serializeUrl(d.extractedUrl),d.source,d.restoredState)),
                                    f !== this.transitions.getValue() ? Mn : Promise.resolve(d)
                                }
                                ), function iO(e, t, n, r) {
                                    return xr(i => function tO(e, t, n, r, i) {
                                        return new nO(e,t,n,r,i).apply()
                                    }(e, t, n, i.extractedUrl, r).pipe(X(o => Object.assign(Object.assign({}, i), {
                                        urlAfterRedirects: o
                                    }))))
                                }(this.ngModule.injector, this.configLoader, this.urlSerializer, this.config), Xe(d => {
                                    this.currentNavigation = Object.assign(Object.assign({}, this.currentNavigation), {
                                        finalUrl: d.urlAfterRedirects
                                    })
                                }
                                ), function bO(e, t, n, r, i) {
                                    return Ue(o => function yO(e, t, n, r, i="emptyOnly", o="legacy") {
                                        try {
                                            const s = new _O(e,t,n,r,i,o).recognize();
                                            return null === s ? gw(new vO) : V(s)
                                        } catch (s) {
                                            return gw(s)
                                        }
                                    }(e, t, o.urlAfterRedirects, n(o.urlAfterRedirects), r, i).pipe(X(s => Object.assign(Object.assign({}, o), {
                                        targetSnapshot: s
                                    }))))
                                }(this.rootComponentType, this.config, d => this.serializeUrl(d), this.paramsInheritanceStrategy, this.relativeLinkResolution), Xe(d => {
                                    if ("eager" === this.urlUpdateStrategy) {
                                        if (!d.extras.skipLocationChange) {
                                            const h = this.urlHandlingStrategy.merge(d.urlAfterRedirects, d.rawUrl);
                                            this.setBrowserUrl(h, d)
                                        }
                                        this.browserUrlTree = d.urlAfterRedirects
                                    }
                                    const f = new zN(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);
                                    r.next(f)
                                }
                                ));
                            if (l && this.rawUrlTree && this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)) {
                                const {id: f, extractedUrl: h, source: p, restoredState: g, extras: v} = a
                                  , m = new pf(f,this.serializeUrl(h),p,g);
                                r.next(m);
                                const C = YC(h, this.rootComponentType).snapshot;
                                return V(Object.assign(Object.assign({}, a), {
                                    targetSnapshot: C,
                                    urlAfterRedirects: h,
                                    extras: Object.assign(Object.assign({}, v), {
                                        skipLocationChange: !1,
                                        replaceUrl: !1
                                    })
                                }))
                            }
                            return this.rawUrlTree = a.rawUrl,
                            a.resolve(null),
                            Mn
                        }
                        ), Xe(a => {
                            const u = new ZN(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot);
                            this.triggerEvent(u)
                        }
                        ), X(a => Object.assign(Object.assign({}, a), {
                            guards: oO(a.targetSnapshot, a.currentSnapshot, this.rootContexts)
                        })), function lO(e, t) {
                            return Ue(n => {
                                const {targetSnapshot: r, currentSnapshot: i, guards: {canActivateChecks: o, canDeactivateChecks: s}} = n;
                                return 0 === s.length && 0 === o.length ? V(Object.assign(Object.assign({}, n), {
                                    guardsResult: !0
                                })) : function cO(e, t, n, r) {
                                    return Pe(e).pipe(Ue(i => function mO(e, t, n, r, i) {
                                        const o = t && t.routeConfig ? t.routeConfig.canDeactivate : null;
                                        return o && 0 !== o.length ? V(o.map(a => {
                                            const u = uu(a, t, i);
                                            let l;
                                            if (function ZP(e) {
                                                return e && ur(e.canDeactivate)
                                            }(u))
                                                l = Qt(u.canDeactivate(e, t, n, r));
                                            else {
                                                if (!ur(u))
                                                    throw new Error("Invalid CanDeactivate guard");
                                                l = Qt(u(e, t, n, r))
                                            }
                                            return l.pipe(Rr())
                                        }
                                        )).pipe(Ko()) : V(!0)
                                    }(i.component, i.route, n, t, r)), Rr(i => !0 !== i, !0))
                                }(s, r, i, e).pipe(Ue(a => a && function GP(e) {
                                    return "boolean" == typeof e
                                }(a) ? function dO(e, t, n, r) {
                                    return Pe(t).pipe(Ai(i => lf(function hO(e, t) {
                                        return null !== e && t && t(new eP(e)),
                                        V(!0)
                                    }(i.route.parent, r), function fO(e, t) {
                                        return null !== e && t && t(new nP(e)),
                                        V(!0)
                                    }(i.route, r), function gO(e, t, n) {
                                        const r = t[t.length - 1]
                                          , o = t.slice(0, t.length - 1).reverse().map(s => function sO(e) {
                                            const t = e.routeConfig ? e.routeConfig.canActivateChild : null;
                                            return t && 0 !== t.length ? {
                                                node: e,
                                                guards: t
                                            } : null
                                        }(s)).filter(s => null !== s).map(s => IC( () => V(s.guards.map(u => {
                                            const l = uu(u, s.node, n);
                                            let c;
                                            if (function zP(e) {
                                                return e && ur(e.canActivateChild)
                                            }(l))
                                                c = Qt(l.canActivateChild(r, e));
                                            else {
                                                if (!ur(l))
                                                    throw new Error("Invalid CanActivateChild guard");
                                                c = Qt(l(r, e))
                                            }
                                            return c.pipe(Rr())
                                        }
                                        )).pipe(Ko())));
                                        return V(o).pipe(Ko())
                                    }(e, i.path, n), function pO(e, t, n) {
                                        const r = t.routeConfig ? t.routeConfig.canActivate : null;
                                        if (!r || 0 === r.length)
                                            return V(!0);
                                        const i = r.map(o => IC( () => {
                                            const s = uu(o, t, n);
                                            let a;
                                            if (function WP(e) {
                                                return e && ur(e.canActivate)
                                            }(s))
                                                a = Qt(s.canActivate(t, e));
                                            else {
                                                if (!ur(s))
                                                    throw new Error("Invalid CanActivate guard");
                                                a = Qt(s(t, e))
                                            }
                                            return a.pipe(Rr())
                                        }
                                        ));
                                        return V(i).pipe(Ko())
                                    }(e, i.route, n))), Rr(i => !0 !== i, !0))
                                }(r, o, e, t) : V(a)), X(a => Object.assign(Object.assign({}, n), {
                                    guardsResult: a
                                })))
                            }
                            )
                        }(this.ngModule.injector, a => this.triggerEvent(a)), Xe(a => {
                            if (Pr(a.guardsResult)) {
                                const l = gf(`Redirecting to "${this.serializeUrl(a.guardsResult)}"`);
                                throw l.url = a.guardsResult,
                                l
                            }
                            const u = new YN(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);
                            this.triggerEvent(u)
                        }
                        ), Tr(a => !!a.guardsResult || (this.restoreHistory(a),
                        this.cancelNavigationTransition(a, ""),
                        !1)), xf(a => {
                            if (a.guards.canActivateChecks.length)
                                return V(a).pipe(Xe(u => {
                                    const l = new JN(u.id,this.serializeUrl(u.extractedUrl),this.serializeUrl(u.urlAfterRedirects),u.targetSnapshot);
                                    this.triggerEvent(l)
                                }
                                ), xr(u => {
                                    let l = !1;
                                    return V(u).pipe(function EO(e, t) {
                                        return Ue(n => {
                                            const {targetSnapshot: r, guards: {canActivateChecks: i}} = n;
                                            if (!i.length)
                                                return V(n);
                                            let o = 0;
                                            return Pe(i).pipe(Ai(s => function SO(e, t, n, r) {
                                                const i = e.routeConfig
                                                  , o = e._resolve;
                                                return void 0 !== (null == i ? void 0 : i.title) && !ww(i) && (o[Tf] = i.title),
                                                function MO(e, t, n, r) {
                                                    const i = function IO(e) {
                                                        return [...Object.keys(e), ...Object.getOwnPropertySymbols(e)]
                                                    }(e);
                                                    if (0 === i.length)
                                                        return V({});
                                                    const o = {};
                                                    return Pe(i).pipe(Ue(s => function AO(e, t, n, r) {
                                                        const i = uu(e, t, r);
                                                        return Qt(i.resolve ? i.resolve(t, n) : i(t, n))
                                                    }(e[s], t, n, r).pipe(Rr(), Xe(a => {
                                                        o[s] = a
                                                    }
                                                    ))), df(1), function qN(e) {
                                                        return X( () => e)
                                                    }(o), ar(s => s instanceof qo ? Mn : Go(s)))
                                                }(o, e, t, r).pipe(X(s => (e._resolvedData = s,
                                                e.data = JC(e, n).resolve,
                                                i && ww(i) && (e.data[Tf] = i.title),
                                                null)))
                                            }(s.route, r, e, t)), Xe( () => o++), df(1), Ue(s => o === i.length ? V(n) : Mn))
                                        }
                                        )
                                    }(this.paramsInheritanceStrategy, this.ngModule.injector), Xe({
                                        next: () => l = !0,
                                        complete: () => {
                                            l || (this.restoreHistory(u),
                                            this.cancelNavigationTransition(u, "At least one route resolver didn't emit any value."))
                                        }
                                    }))
                                }
                                ), Xe(u => {
                                    const l = new QN(u.id,this.serializeUrl(u.extractedUrl),this.serializeUrl(u.urlAfterRedirects),u.targetSnapshot);
                                    this.triggerEvent(l)
                                }
                                ))
                        }
                        ), xf( () => this.afterPreactivation()), xf(a => {
                            const u = l => {
                                var c;
                                const d = [];
                                (null === (c = l.routeConfig) || void 0 === c ? void 0 : c.loadComponent) && !l.routeConfig._loadedComponent && d.push(this.configLoader.loadComponent(l.routeConfig).pipe(Xe(f => {
                                    l.component = f
                                }
                                ), X( () => {}
                                )));
                                for (const f of l.children)
                                    d.push(...u(f));
                                return d
                            }
                            ;
                            return SC(u(a.targetSnapshot.root)).pipe(ff(), ji(1))
                        }
                        ), X(a => {
                            const u = function MP(e, t, n) {
                                const r = Yo(e, t._root, n ? n._root : void 0);
                                return new ZC(r,t)
                            }(this.routeReuseStrategy, a.targetSnapshot, a.currentRouterState);
                            return Object.assign(Object.assign({}, a), {
                                targetRouterState: u
                            })
                        }
                        ), Xe(a => {
                            this.currentUrlTree = a.urlAfterRedirects,
                            this.rawUrlTree = this.urlHandlingStrategy.merge(a.urlAfterRedirects, a.rawUrl),
                            this.routerState = a.targetRouterState,
                            "deferred" === this.urlUpdateStrategy && (a.extras.skipLocationChange || this.setBrowserUrl(this.rawUrlTree, a),
                            this.browserUrlTree = a.urlAfterRedirects)
                        }
                        ), ( (e, t, n) => X(r => (new $P(t,r.targetRouterState,r.currentRouterState,n).activate(e),
                        r)))(this.rootContexts, this.routeReuseStrategy, a => this.triggerEvent(a)), Xe({
                            next() {
                                o = !0
                            },
                            complete() {
                                o = !0
                            }
                        }), hf( () => {
                            var a;
                            o || s || this.cancelNavigationTransition(i, `Navigation ID ${i.id} is not equal to the current navigation id ${this.navigationId}`),
                            (null === (a = this.currentNavigation) || void 0 === a ? void 0 : a.id) === i.id && (this.currentNavigation = null)
                        }
                        ), ar(a => {
                            if (s = !0,
                            function oP(e) {
                                return e && e[NC]
                            }(a)) {
                                const u = Pr(a.url);
                                u || (this.navigated = !0,
                                this.restoreHistory(i, !0));
                                const l = new RC(i.id,this.serializeUrl(i.extractedUrl),a.message);
                                if (r.next(l),
                                u) {
                                    const c = this.urlHandlingStrategy.merge(a.url, this.rawUrlTree)
                                      , d = {
                                        skipLocationChange: i.extras.skipLocationChange,
                                        replaceUrl: "eager" === this.urlUpdateStrategy || Ew(i.source)
                                    };
                                    this.scheduleNavigation(c, "imperative", null, d, {
                                        resolve: i.resolve,
                                        reject: i.reject,
                                        promise: i.promise
                                    })
                                } else
                                    i.resolve(!1)
                            } else {
                                this.restoreHistory(i, !0);
                                const u = new WN(i.id,this.serializeUrl(i.extractedUrl),a);
                                r.next(u);
                                try {
                                    i.resolve(this.errorHandler(a))
                                } catch (l) {
                                    i.reject(l)
                                }
                            }
                            return Mn
                        }
                        ))
                    }
                    ))
                }
                resetRootComponentType(n) {
                    this.rootComponentType = n,
                    this.routerState.root.component = this.rootComponentType
                }
                setTransition(n) {
                    this.transitions.next(Object.assign(Object.assign({}, this.transitions.value), n))
                }
                initialNavigation() {
                    this.setUpLocationChangeListener(),
                    0 === this.navigationId && this.navigateByUrl(this.location.path(!0), {
                        replaceUrl: !0
                    })
                }
                setUpLocationChangeListener() {
                    this.locationSubscription || (this.locationSubscription = this.location.subscribe(n => {
                        const r = "popstate" === n.type ? "popstate" : "hashchange";
                        "popstate" === r && setTimeout( () => {
                            var i;
                            const o = {
                                replaceUrl: !0
                            }
                              , s = null !== (i = n.state) && void 0 !== i && i.navigationId ? n.state : null;
                            if (s) {
                                const u = Object.assign({}, s);
                                delete u.navigationId,
                                delete u.\u0275routerPageId,
                                0 !== Object.keys(u).length && (o.state = u)
                            }
                            const a = this.parseUrl(n.url);
                            this.scheduleNavigation(a, r, s, o)
                        }
                        , 0)
                    }
                    ))
                }
                get url() {
                    return this.serializeUrl(this.currentUrlTree)
                }
                getCurrentNavigation() {
                    return this.currentNavigation
                }
                triggerEvent(n) {
                    this.events.next(n)
                }
                resetConfig(n) {
                    this.config = n.map(If),
                    this.navigated = !1,
                    this.lastSuccessfulId = -1
                }
                ngOnDestroy() {
                    this.dispose()
                }
                dispose() {
                    this.transitions.complete(),
                    this.locationSubscription && (this.locationSubscription.unsubscribe(),
                    this.locationSubscription = void 0),
                    this.disposed = !0
                }
                createUrlTree(n, r={}) {
                    const {relativeTo: i, queryParams: o, fragment: s, queryParamsHandling: a, preserveFragment: u} = r
                      , l = i || this.routerState.root
                      , c = u ? this.currentUrlTree.fragment : s;
                    let d = null;
                    switch (a) {
                    case "merge":
                        d = Object.assign(Object.assign({}, this.currentUrlTree.queryParams), o);
                        break;
                    case "preserve":
                        d = this.currentUrlTree.queryParams;
                        break;
                    default:
                        d = o || null
                    }
                    return null !== d && (d = this.removeEmptyProps(d)),
                    function TP(e, t, n, r, i) {
                        var o;
                        if (0 === n.length)
                            return wf(t.root, t.root, t.root, r, i);
                        const a = function xP(e) {
                            if ("string" == typeof e[0] && 1 === e.length && "/" === e[0])
                                return new ew(!0,0,e);
                            let t = 0
                              , n = !1;
                            const r = e.reduce( (i, o, s) => {
                                if ("object" == typeof o && null != o) {
                                    if (o.outlets) {
                                        const a = {};
                                        return Ge(o.outlets, (u, l) => {
                                            a[l] = "string" == typeof u ? u.split("/") : u
                                        }
                                        ),
                                        [...i, {
                                            outlets: a
                                        }]
                                    }
                                    if (o.segmentPath)
                                        return [...i, o.segmentPath]
                                }
                                return "string" != typeof o ? [...i, o] : 0 === s ? (o.split("/").forEach( (a, u) => {
                                    0 == u && "." === a || (0 == u && "" === a ? n = !0 : ".." === a ? t++ : "" != a && i.push(a))
                                }
                                ),
                                i) : [...i, o]
                            }
                            , []);
                            return new ew(n,t,r)
                        }(n);
                        return a.toRoot() ? wf(t.root, t.root, new Z([],{}), r, i) : function u(c) {
                            var d;
                            const f = function RP(e, t, n, r) {
                                return e.isAbsolute ? new bf(t.root,!0,0) : -1 === r ? new bf(n,n === t.root,0) : function FP(e, t, n) {
                                    let r = e
                                      , i = t
                                      , o = n;
                                    for (; o > i; ) {
                                        if (o -= i,
                                        r = r.parent,
                                        !r)
                                            throw new Error("Invalid number of '../'");
                                        i = r.segments.length
                                    }
                                    return new bf(r,!1,i - o)
                                }(n, r + (tu(e.commands[0]) ? 0 : 1), e.numberOfDoubleDots)
                            }(a, t, null === (d = e.snapshot) || void 0 === d ? void 0 : d._urlSegment, c)
                              , h = f.processChildren ? nu(f.segmentGroup, f.index, a.commands) : tw(f.segmentGroup, f.index, a.commands);
                            return wf(t.root, f.segmentGroup, h, r, i)
                        }(null === (o = e.snapshot) || void 0 === o ? void 0 : o._lastPathIndex)
                    }(l, this.currentUrlTree, n, d, null != c ? c : null)
                }
                navigateByUrl(n, r={
                    skipLocationChange: !1
                }) {
                    const i = Pr(n) ? n : this.parseUrl(n)
                      , o = this.urlHandlingStrategy.merge(i, this.rawUrlTree);
                    return this.scheduleNavigation(o, "imperative", null, r)
                }
                navigate(n, r={
                    skipLocationChange: !1
                }) {
                    return function jO(e) {
                        for (let t = 0; t < e.length; t++) {
                            const n = e[t];
                            if (null == n)
                                throw new Error(`The requested path contains ${n} segment at index ${t}`)
                        }
                    }(n),
                    this.navigateByUrl(this.createUrlTree(n, r), r)
                }
                serializeUrl(n) {
                    return this.urlSerializer.serialize(n)
                }
                parseUrl(n) {
                    let r;
                    try {
                        r = this.urlSerializer.parse(n)
                    } catch (i) {
                        r = this.malformedUriErrorHandler(i, this.urlSerializer, n)
                    }
                    return r
                }
                isActive(n, r) {
                    let i;
                    if (i = !0 === r ? Object.assign({}, LO) : !1 === r ? Object.assign({}, VO) : r,
                    Pr(n))
                        return VC(this.currentUrlTree, n, i);
                    const o = this.parseUrl(n);
                    return VC(this.currentUrlTree, o, i)
                }
                removeEmptyProps(n) {
                    return Object.keys(n).reduce( (r, i) => {
                        const o = n[i];
                        return null != o && (r[i] = o),
                        r
                    }
                    , {})
                }
                processNavigations() {
                    this.navigations.subscribe(n => {
                        var r;
                        this.navigated = !0,
                        this.lastSuccessfulId = n.id,
                        this.currentPageId = n.targetPageId,
                        this.events.next(new Wo(n.id,this.serializeUrl(n.extractedUrl),this.serializeUrl(this.currentUrlTree))),
                        this.lastSuccessfulNavigation = this.currentNavigation,
                        null === (r = this.titleStrategy) || void 0 === r || r.updateTitle(this.routerState.snapshot),
                        n.resolve(!0)
                    }
                    , n => {
                        this.console.warn(`Unhandled Navigation Error: ${n}`)
                    }
                    )
                }
                scheduleNavigation(n, r, i, o, s) {
                    var a, u;
                    if (this.disposed)
                        return Promise.resolve(!1);
                    let l, c, d;
                    s ? (l = s.resolve,
                    c = s.reject,
                    d = s.promise) : d = new Promise( (p, g) => {
                        l = p,
                        c = g
                    }
                    );
                    const f = ++this.navigationId;
                    let h;
                    return "computed" === this.canceledNavigationResolution ? (0 === this.currentPageId && (i = this.location.getState()),
                    h = i && i.\u0275routerPageId ? i.\u0275routerPageId : o.replaceUrl || o.skipLocationChange ? null !== (a = this.browserPageId) && void 0 !== a ? a : 0 : (null !== (u = this.browserPageId) && void 0 !== u ? u : 0) + 1) : h = 0,
                    this.setTransition({
                        id: f,
                        targetPageId: h,
                        source: r,
                        restoredState: i,
                        currentUrlTree: this.currentUrlTree,
                        currentRawUrl: this.rawUrlTree,
                        rawUrl: n,
                        extras: o,
                        resolve: l,
                        reject: c,
                        promise: d,
                        currentSnapshot: this.routerState.snapshot,
                        currentRouterState: this.routerState
                    }),
                    d.catch(p => Promise.reject(p))
                }
                setBrowserUrl(n, r) {
                    const i = this.urlSerializer.serialize(n)
                      , o = Object.assign(Object.assign({}, r.extras.state), this.generateNgRouterState(r.id, r.targetPageId));
                    this.location.isCurrentPathEqualTo(i) || r.extras.replaceUrl ? this.location.replaceState(i, "", o) : this.location.go(i, "", o)
                }
                restoreHistory(n, r=!1) {
                    var i, o;
                    if ("computed" === this.canceledNavigationResolution) {
                        const s = this.currentPageId - n.targetPageId;
                        "popstate" !== n.source && "eager" !== this.urlUpdateStrategy && this.currentUrlTree !== (null === (i = this.currentNavigation) || void 0 === i ? void 0 : i.finalUrl) || 0 === s ? this.currentUrlTree === (null === (o = this.currentNavigation) || void 0 === o ? void 0 : o.finalUrl) && 0 === s && (this.resetState(n),
                        this.browserUrlTree = n.currentUrlTree,
                        this.resetUrlToCurrentUrlTree()) : this.location.historyGo(s)
                    } else
                        "replace" === this.canceledNavigationResolution && (r && this.resetState(n),
                        this.resetUrlToCurrentUrlTree())
                }
                resetState(n) {
                    this.routerState = n.currentRouterState,
                    this.currentUrlTree = n.currentUrlTree,
                    this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, n.rawUrl)
                }
                resetUrlToCurrentUrlTree() {
                    this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree), "", this.generateNgRouterState(this.lastSuccessfulId, this.currentPageId))
                }
                cancelNavigationTransition(n, r) {
                    const i = new RC(n.id,this.serializeUrl(n.extractedUrl),r);
                    this.triggerEvent(i),
                    n.resolve(!1)
                }
                generateNgRouterState(n, r) {
                    return "computed" === this.canceledNavigationResolution ? {
                        navigationId: n,
                        \u0275routerPageId: r
                    } : {
                        navigationId: n
                    }
                }
            }
            return e.\u0275fac = function(n) {
                Ul()
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        function Ew(e) {
            return "imperative" !== e
        }
        let lu = ( () => {
            class e {
                constructor(n, r, i) {
                    this.router = n,
                    this.route = r,
                    this.locationStrategy = i,
                    this.commands = null,
                    this.href = null,
                    this.onChanges = new en,
                    this.subscription = n.events.subscribe(o => {
                        o instanceof Wo && this.updateTargetUrlAndHref()
                    }
                    )
                }
                set routerLink(n) {
                    this.commands = null != n ? Array.isArray(n) ? n : [n] : null
                }
                ngOnChanges(n) {
                    this.updateTargetUrlAndHref(),
                    this.onChanges.next(this)
                }
                ngOnDestroy() {
                    this.subscription.unsubscribe()
                }
                onClick(n, r, i, o, s) {
                    if (0 !== n || r || i || o || s || "string" == typeof this.target && "_self" != this.target || null === this.urlTree)
                        return !0;
                    const a = {
                        skipLocationChange: Bn(this.skipLocationChange),
                        replaceUrl: Bn(this.replaceUrl),
                        state: this.state
                    };
                    return this.router.navigateByUrl(this.urlTree, a),
                    !1
                }
                updateTargetUrlAndHref() {
                    this.href = null !== this.urlTree ? this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree)) : null
                }
                get urlTree() {
                    return null === this.commands ? null : this.router.createUrlTree(this.commands, {
                        relativeTo: void 0 !== this.relativeTo ? this.relativeTo : this.route,
                        queryParams: this.queryParams,
                        fragment: this.fragment,
                        queryParamsHandling: this.queryParamsHandling,
                        preserveFragment: Bn(this.preserveFragment)
                    })
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(qe),_(En),_(Si))
            }
            ,
            e.\u0275dir = R({
                type: e,
                selectors: [["a", "routerLink", ""], ["area", "routerLink", ""]],
                hostVars: 2,
                hostBindings: function(n, r) {
                    1 & n && ie("click", function(o) {
                        return r.onClick(o.button, o.ctrlKey, o.shiftKey, o.altKey, o.metaKey)
                    }),
                    2 & n && pn("target", r.target)("href", r.href, dl)
                },
                inputs: {
                    target: "target",
                    queryParams: "queryParams",
                    fragment: "fragment",
                    queryParamsHandling: "queryParamsHandling",
                    preserveFragment: "preserveFragment",
                    skipLocationChange: "skipLocationChange",
                    replaceUrl: "replaceUrl",
                    state: "state",
                    relativeTo: "relativeTo",
                    routerLink: "routerLink"
                },
                features: [It]
            }),
            e
        }
        )();
        class Sw {
            buildTitle(t) {
                var n;
                let r, i = t.root;
                for (; void 0 !== i; )
                    r = null !== (n = this.getResolvedTitleForRoute(i)) && void 0 !== n ? n : r,
                    i = i.children.find(o => o.outlet === q);
                return r
            }
            getResolvedTitleForRoute(t) {
                return t.data[Tf]
            }
        }
        let UO = ( () => {
            class e extends Sw {
                constructor(n) {
                    super(),
                    this.title = n
                }
                updateTitle(n) {
                    const r = this.buildTitle(n);
                    void 0 !== r && this.title.setTitle(r)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(iD))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "root"
            }),
            e
        }
        )();
        class Mw {
        }
        class Iw {
            preload(t, n) {
                return V(null)
            }
        }
        let Aw = ( () => {
            class e {
                constructor(n, r, i, o, s) {
                    this.router = n,
                    this.injector = i,
                    this.preloadingStrategy = o,
                    this.loader = s
                }
                setUpPreloading() {
                    this.subscription = this.router.events.pipe(Tr(n => n instanceof Wo), Ai( () => this.preload())).subscribe( () => {}
                    )
                }
                preload() {
                    return this.processRoutes(this.injector, this.router.config)
                }
                ngOnDestroy() {
                    this.subscription && this.subscription.unsubscribe()
                }
                processRoutes(n, r) {
                    var i, o, s;
                    const a = [];
                    for (const u of r) {
                        u.providers && !u._injector && (u._injector = ua(u.providers, n, `Route: ${u.path}`));
                        const l = null !== (i = u._injector) && void 0 !== i ? i : n
                          , c = null !== (o = u._loadedInjector) && void 0 !== o ? o : l;
                        u.loadChildren && !u._loadedRoutes || u.loadComponent && !u._loadedComponent ? a.push(this.preloadConfig(l, u)) : (u.children || u._loadedRoutes) && a.push(this.processRoutes(c, null !== (s = u.children) && void 0 !== s ? s : u._loadedRoutes))
                    }
                    return Pe(a).pipe(kr())
                }
                preloadConfig(n, r) {
                    return this.preloadingStrategy.preload(r, () => {
                        let i;
                        i = r.loadChildren && void 0 === r.canLoad ? this.loader.loadChildren(n, r) : V(null);
                        const o = i.pipe(Ue(s => {
                            var a;
                            return null === s ? V(void 0) : (r._loadedRoutes = s.routes,
                            r._loadedInjector = s.injector,
                            this.processRoutes(null !== (a = s.injector) && void 0 !== a ? a : n, s.routes))
                        }
                        ));
                        return r.loadComponent && !r._loadedComponent ? Pe([o, this.loader.loadComponent(r)]).pipe(kr()) : o
                    }
                    )
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(qe),S(Qc),S(Cr),S(Mw),S(Ff))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )()
          , Pf = ( () => {
            class e {
                constructor(n, r, i={}) {
                    this.router = n,
                    this.viewportScroller = r,
                    this.options = i,
                    this.lastId = 0,
                    this.lastSource = "imperative",
                    this.restoredId = 0,
                    this.store = {},
                    i.scrollPositionRestoration = i.scrollPositionRestoration || "disabled",
                    i.anchorScrolling = i.anchorScrolling || "disabled"
                }
                init() {
                    "disabled" !== this.options.scrollPositionRestoration && this.viewportScroller.setHistoryScrollRestoration("manual"),
                    this.routerEventsSubscription = this.createScrollEvents(),
                    this.scrollEventsSubscription = this.consumeScrollEvents()
                }
                createScrollEvents() {
                    return this.router.events.subscribe(n => {
                        n instanceof pf ? (this.store[this.lastId] = this.viewportScroller.getScrollPosition(),
                        this.lastSource = n.navigationTrigger,
                        this.restoredId = n.restoredState ? n.restoredState.navigationId : 0) : n instanceof Wo && (this.lastId = n.id,
                        this.scheduleScrollEvent(n, this.router.parseUrl(n.urlAfterRedirects).fragment))
                    }
                    )
                }
                consumeScrollEvents() {
                    return this.router.events.subscribe(n => {
                        n instanceof FC && (n.position ? "top" === this.options.scrollPositionRestoration ? this.viewportScroller.scrollToPosition([0, 0]) : "enabled" === this.options.scrollPositionRestoration && this.viewportScroller.scrollToPosition(n.position) : n.anchor && "enabled" === this.options.anchorScrolling ? this.viewportScroller.scrollToAnchor(n.anchor) : "disabled" !== this.options.scrollPositionRestoration && this.viewportScroller.scrollToPosition([0, 0]))
                    }
                    )
                }
                scheduleScrollEvent(n, r) {
                    this.router.triggerEvent(new FC(n,"popstate" === this.lastSource ? this.store[this.restoredId] : null,r))
                }
                ngOnDestroy() {
                    this.routerEventsSubscription && this.routerEventsSubscription.unsubscribe(),
                    this.scrollEventsSubscription && this.scrollEventsSubscription.unsubscribe()
                }
            }
            return e.\u0275fac = function(n) {
                Ul()
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        const Or = new N("ROUTER_CONFIGURATION")
          , Tw = new N("ROUTER_FORROOT_GUARD")
          , GO = [cd, {
            provide: UC,
            useClass: $C
        }, {
            provide: qe,
            useFactory: function JO(e, t, n, r, i, o, s={}, a, u, l, c) {
                const d = new qe(null,e,t,n,r,i,OC(o));
                return l && (d.urlHandlingStrategy = l),
                c && (d.routeReuseStrategy = c),
                d.titleStrategy = null != u ? u : a,
                function QO(e, t) {
                    e.errorHandler && (t.errorHandler = e.errorHandler),
                    e.malformedUriErrorHandler && (t.malformedUriErrorHandler = e.malformedUriErrorHandler),
                    e.onSameUrlNavigation && (t.onSameUrlNavigation = e.onSameUrlNavigation),
                    e.paramsInheritanceStrategy && (t.paramsInheritanceStrategy = e.paramsInheritanceStrategy),
                    e.relativeLinkResolution && (t.relativeLinkResolution = e.relativeLinkResolution),
                    e.urlUpdateStrategy && (t.urlUpdateStrategy = e.urlUpdateStrategy),
                    e.canceledNavigationResolution && (t.canceledNavigationResolution = e.canceledNavigationResolution)
                }(s, d),
                d
            },
            deps: [UC, Qo, cd, Ye, Qc, Rf, Or, UO, [Sw, new Fn], [class FO {
            }
            , new Fn], [class TO {
            }
            , new Fn]]
        }, Qo, {
            provide: En,
            useFactory: function XO(e) {
                return e.routerState.root
            },
            deps: [qe]
        }, Aw, Iw, class $O {
            preload(t, n) {
                return n().pipe(ar( () => V(null)))
            }
        }
        , {
            provide: Or,
            useValue: {
                enableTracing: !1
            }
        }, Ff];
        function qO() {
            return new e_("Router",qe)
        }
        let WO = ( () => {
            class e {
                constructor(n, r) {}
                static forRoot(n, r) {
                    return {
                        ngModule: e,
                        providers: [GO, xw(n), {
                            provide: Tw,
                            useFactory: YO,
                            deps: [[qe, new Fn, new no]]
                        }, {
                            provide: Or,
                            useValue: r || {}
                        }, {
                            provide: Si,
                            useFactory: ZO,
                            deps: [Fo, [new Os(ld), new Fn], Or]
                        }, {
                            provide: Pf,
                            useFactory: zO,
                            deps: [qe, VR, Or]
                        }, {
                            provide: Mw,
                            useExisting: r && r.preloadingStrategy ? r.preloadingStrategy : Iw
                        }, {
                            provide: e_,
                            multi: !0,
                            useFactory: qO
                        }, [Of, {
                            provide: Zc,
                            multi: !0,
                            useFactory: KO,
                            deps: [Of]
                        }, {
                            provide: Rw,
                            useFactory: ek,
                            deps: [Of]
                        }, {
                            provide: Zy,
                            multi: !0,
                            useExisting: Rw
                        }]]
                    }
                }
                static forChild(n) {
                    return {
                        ngModule: e,
                        providers: [xw(n)]
                    }
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Tw, 8),S(qe, 8))
            }
            ,
            e.\u0275mod = St({
                type: e
            }),
            e.\u0275inj = pt({}),
            e
        }
        )();
        function zO(e, t, n) {
            return n.scrollOffset && t.setOffset(n.scrollOffset),
            new Pf(e,t,n)
        }
        function ZO(e, t, n={}) {
            return n.useHash ? new _x(e,t) : new b_(e,t)
        }
        function YO(e) {
            return "guarded"
        }
        function xw(e) {
            return [{
                provide: zb,
                multi: !0,
                useValue: e
            }, {
                provide: Rf,
                multi: !0,
                useValue: e
            }]
        }
        let Of = ( () => {
            class e {
                constructor(n) {
                    this.injector = n,
                    this.initNavigation = !1,
                    this.destroyed = !1,
                    this.resultOfPreactivationDone = new en
                }
                appInitializer() {
                    return this.injector.get(mx, Promise.resolve(null)).then( () => {
                        if (this.destroyed)
                            return Promise.resolve(!0);
                        let r = null;
                        const i = new Promise(a => r = a)
                          , o = this.injector.get(qe)
                          , s = this.injector.get(Or);
                        return "disabled" === s.initialNavigation ? (o.setUpLocationChangeListener(),
                        r(!0)) : "enabledBlocking" === s.initialNavigation ? (o.afterPreactivation = () => this.initNavigation ? V(void 0) : (this.initNavigation = !0,
                        r(!0),
                        this.resultOfPreactivationDone),
                        o.initialNavigation()) : r(!0),
                        i
                    }
                    )
                }
                bootstrapListener(n) {
                    const r = this.injector.get(Or)
                      , i = this.injector.get(Aw)
                      , o = this.injector.get(Pf)
                      , s = this.injector.get(qe)
                      , a = this.injector.get(pa);
                    n === a.components[0] && (("enabledNonBlocking" === r.initialNavigation || void 0 === r.initialNavigation) && s.initialNavigation(),
                    i.setUpPreloading(),
                    o.init(),
                    s.resetRootComponentType(a.componentTypes[0]),
                    this.resultOfPreactivationDone.next(void 0),
                    this.resultOfPreactivationDone.complete())
                }
                ngOnDestroy() {
                    this.destroyed = !0
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(Ye))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac
            }),
            e
        }
        )();
        function KO(e) {
            return e.appInitializer.bind(e)
        }
        function ek(e) {
            return e.bootstrapListener.bind(e)
        }
        const Rw = new N("Router Initializer")
          , nk = function() {
            return ["/"]
        };
        function rk(e, t) {
            1 & e && (P(0, "a", 4),
            _e(1, " UniFlow "),
            F()),
            2 & e && z("routerLink", py(1, nk))
        }
        function ik(e, t) {
            1 & e && (P(0, "div"),
            Gt(1, "img", 5)(2, "br"),
            F())
        }
        let ok = ( () => {
            class e {
                constructor() {
                    this.isShowLogo = !1,
                    this.isShowText = !0
                }
                ngOnInit() {
                    window.location.href.includes("surveys.harmon-research") ? (this.isShowLogo = !0,
                    this.isShowText = !1) : (this.isShowLogo = !1,
                    this.isShowText = !0)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["app-nav-menu"]],
                decls: 5,
                vars: 2,
                consts: [[1, "navbar", "navbar-expand-sm", "navbar-toggleable-sm", "navbar-light", "bg-white", "border-bottom", "box-shadow", "mb-3"], [1, "container"], ["class", "navbar-brand", 3, "routerLink", 4, "ngIf"], [4, "ngIf"], [1, "navbar-brand", 3, "routerLink"], ["src", "/assets/images/harmon-research.png", "alt", "", "width", "200", "height", "60"]],
                template: function(n, r) {
                    1 & n && (P(0, "header")(1, "nav", 0)(2, "div", 1),
                    ue(3, rk, 2, 2, "a", 2),
                    ue(4, ik, 3, 0, "div", 3),
                    F()()()),
                    2 & n && (B(3),
                    z("ngIf", r.isShowText),
                    B(1),
                    z("ngIf", r.isShowLogo))
                },
                dependencies: [xa, lu],
                styles: ["a.navbar-brand[_ngcontent-%COMP%]{white-space:normal;text-align:center;word-break:break-all}html[_ngcontent-%COMP%]{font-size:14px}@media (min-width: 768px){html[_ngcontent-%COMP%]{font-size:16px}}.box-shadow[_ngcontent-%COMP%]{box-shadow:0 .25rem .75rem #0000000d}"]
            }),
            e
        }
        )()
          , sk = ( () => {
            class e {
                constructor() {
                    this.title = "app"
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["app-root"]],
                decls: 4,
                vars: 0,
                consts: [[1, "container"]],
                template: function(n, r) {
                    1 & n && (P(0, "body"),
                    Gt(1, "app-nav-menu"),
                    P(2, "div", 0),
                    Gt(3, "router-outlet"),
                    F()())
                },
                dependencies: [Sf, ok],
                encapsulation: 2
            }),
            e
        }
        )();
        function Ri(e, t) {
            return new Promise(function(n) {
                return setTimeout(n, e, t)
            }
            )
        }
        function Nw(e, t) {
            try {
                var n = e();
                !function kf(e) {
                    return e && "function" == typeof e.then
                }(n) ? t(!0, n) : n.then(function(r) {
                    return t(!0, r)
                }, function(r) {
                    return t(!1, r)
                })
            } catch (r) {
                t(!1, r)
            }
        }
        function Pw(e, t, n) {
            return void 0 === n && (n = 16),
            tn(this, void 0, void 0, function() {
                var r, i, o;
                return nn(this, function(s) {
                    switch (s.label) {
                    case 0:
                        r = Date.now(),
                        i = 0,
                        s.label = 1;
                    case 1:
                        return i < e.length ? (t(e[i], i),
                        (o = Date.now()) >= r + n ? (r = o,
                        [4, Ri(0)]) : [3, 3]) : [3, 4];
                    case 2:
                        s.sent(),
                        s.label = 3;
                    case 3:
                        return ++i,
                        [3, 1];
                    case 4:
                        return [2]
                    }
                })
            })
        }
        function Lf(e) {
            e.then(void 0, function() {})
        }
        function lr(e, t) {
            var n = [0, 0, 0, 0];
            return n[3] += (e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]])[3] + (t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]])[3],
            n[2] += n[3] >>> 16,
            n[3] &= 65535,
            n[2] += e[2] + t[2],
            n[1] += n[2] >>> 16,
            n[2] &= 65535,
            n[1] += e[1] + t[1],
            n[0] += n[1] >>> 16,
            n[1] &= 65535,
            n[0] += e[0] + t[0],
            n[0] &= 65535,
            [n[0] << 16 | n[1], n[2] << 16 | n[3]]
        }
        function Ot(e, t) {
            var n = [0, 0, 0, 0];
            return n[3] += (e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]])[3] * (t = [t[0] >>> 16, 65535 & t[0], t[1] >>> 16, 65535 & t[1]])[3],
            n[2] += n[3] >>> 16,
            n[3] &= 65535,
            n[2] += e[2] * t[3],
            n[1] += n[2] >>> 16,
            n[2] &= 65535,
            n[2] += e[3] * t[2],
            n[1] += n[2] >>> 16,
            n[2] &= 65535,
            n[1] += e[1] * t[3],
            n[0] += n[1] >>> 16,
            n[1] &= 65535,
            n[1] += e[2] * t[2],
            n[0] += n[1] >>> 16,
            n[1] &= 65535,
            n[1] += e[3] * t[1],
            n[0] += n[1] >>> 16,
            n[1] &= 65535,
            n[0] += e[0] * t[3] + e[1] * t[2] + e[2] * t[1] + e[3] * t[0],
            n[0] &= 65535,
            [n[0] << 16 | n[1], n[2] << 16 | n[3]]
        }
        function Fi(e, t) {
            return 32 == (t %= 64) ? [e[1], e[0]] : t < 32 ? [e[0] << t | e[1] >>> 32 - t, e[1] << t | e[0] >>> 32 - t] : [e[1] << (t -= 32) | e[0] >>> 32 - t, e[0] << t | e[1] >>> 32 - t]
        }
        function bt(e, t) {
            return 0 == (t %= 64) ? e : t < 32 ? [e[0] << t | e[1] >>> 32 - t, e[1] << t] : [e[1] << t - 32, 0]
        }
        function ve(e, t) {
            return [e[0] ^ t[0], e[1] ^ t[1]]
        }
        function Ow(e) {
            return e = ve(e, [0, e[0] >>> 1]),
            e = ve(e = Ot(e, [4283543511, 3981806797]), [0, e[0] >>> 1]),
            ve(e = Ot(e, [3301882366, 444984403]), [0, e[0] >>> 1])
        }
        function Vf(e) {
            return parseInt(e)
        }
        function Xt(e) {
            return parseFloat(e)
        }
        function qn(e, t) {
            return "number" == typeof e && isNaN(e) ? t : e
        }
        function Kt(e) {
            return e.reduce(function(t, n) {
                return t + (n ? 1 : 0)
            }, 0)
        }
        function kw(e, t) {
            if (void 0 === t && (t = 1),
            Math.abs(t) >= 1)
                return Math.round(e / t) * t;
            var n = 1 / t;
            return Math.round(e * n) / n
        }
        function Lw(e) {
            return e && "object" == typeof e && "message"in e ? e : {
                message: e
            }
        }
        function Vw(e) {
            return "function" != typeof e
        }
        function jw() {
            var e = window
              , t = navigator;
            return Kt(["MSCSSMatrix"in e, "msSetImmediate"in e, "msIndexedDB"in e, "msMaxTouchPoints"in t, "msPointerEnabled"in t]) >= 4
        }
        function jf() {
            var e = window
              , t = navigator;
            return Kt(["webkitPersistentStorage"in t, "webkitTemporaryStorage"in t, 0 === t.vendor.indexOf("Google"), "webkitResolveLocalFileSystemURL"in e, "BatteryManager"in e, "webkitMediaStream"in e, "webkitSpeechGrammar"in e]) >= 5
        }
        function rs() {
            var e = window
              , t = navigator;
            return Kt(["ApplePayError"in e, "CSSPrimitiveValue"in e, "Counter"in e, 0 === t.vendor.indexOf("Apple"), "getStorageUpdates"in t, "WebKitMediaKeys"in e]) >= 4
        }
        function Bf() {
            var e = window;
            return Kt(["safari"in e, !("DeviceMotionEvent"in e), !("ongestureend"in e), !("standalone"in navigator)]) >= 3
        }
        function Ck() {
            var e = document;
            return (e.exitFullscreen || e.msExitFullscreen || e.mozCancelFullScreen || e.webkitExitFullscreen).call(e)
        }
        function Bw() {
            var e = jf()
              , t = function mk() {
                var e, t, n = window;
                return Kt(["buildID"in navigator, "MozAppearance"in (null !== (t = null === (e = document.documentElement) || void 0 === e ? void 0 : e.style) && void 0 !== t ? t : {}), "onmozfullscreenchange"in n, "mozInnerScreenX"in n, "CSSMozDocumentRule"in n, "CanvasCaptureMediaStream"in n]) >= 4
            }();
            if (!e && !t)
                return !1;
            var n = window;
            return Kt(["onorientationchange"in n, "orientation"in n, e && !("SharedWorker"in n), t && /android/i.test(navigator.appVersion)]) >= 2
        }
        function Hw(e) {
            var t = new Error(e);
            return t.name = e,
            t
        }
        function Uw(e, t, n) {
            var r, i, o;
            return void 0 === n && (n = 50),
            tn(this, void 0, void 0, function() {
                var s, a;
                return nn(this, function(u) {
                    switch (u.label) {
                    case 0:
                        s = document,
                        u.label = 1;
                    case 1:
                        return s.body ? [3, 3] : [4, Ri(n)];
                    case 2:
                        return u.sent(),
                        [3, 1];
                    case 3:
                        a = s.createElement("iframe"),
                        u.label = 4;
                    case 4:
                        return u.trys.push([4, , 10, 11]),
                        [4, new Promise(function(l, c) {
                            var d = !1
                              , f = function() {
                                d = !0,
                                l()
                            };
                            a.onload = f,
                            a.onerror = function(v) {
                                d = !0,
                                c(v)
                            }
                            ;
                            var p = a.style;
                            p.setProperty("display", "block", "important"),
                            p.position = "absolute",
                            p.top = "0",
                            p.left = "0",
                            p.visibility = "hidden",
                            t && "srcdoc"in a ? a.srcdoc = t : a.src = "about:blank",
                            s.body.appendChild(a);
                            var g = function() {
                                var v, m;
                                d || ("complete" === (null === (m = null === (v = a.contentWindow) || void 0 === v ? void 0 : v.document) || void 0 === m ? void 0 : m.readyState) ? f() : setTimeout(g, 10))
                            };
                            g()
                        }
                        )];
                    case 5:
                        u.sent(),
                        u.label = 6;
                    case 6:
                        return null !== (i = null === (r = a.contentWindow) || void 0 === r ? void 0 : r.document) && void 0 !== i && i.body ? [3, 8] : [4, Ri(n)];
                    case 7:
                        return u.sent(),
                        [3, 6];
                    case 8:
                        return [4, e(a, a.contentWindow)];
                    case 9:
                        return [2, u.sent()];
                    case 10:
                        return null === (o = a.parentNode) || void 0 === o || o.removeChild(a),
                        [7];
                    case 11:
                        return [2]
                    }
                })
            })
        }
        function Mk(e) {
            for (var t = function fk(e) {
                for (var t, n, r = "Unexpected syntax '" + e + "'", i = /^\s*([a-z-]*)(.*)$/i.exec(e), o = i[1] || void 0, s = {}, a = /([.:#][\w-]+|\[.+?\])/gi, u = function(f, h) {
                    s[f] = s[f] || [],
                    s[f].push(h)
                }; ; ) {
                    var l = a.exec(i[2]);
                    if (!l)
                        break;
                    var c = l[0];
                    switch (c[0]) {
                    case ".":
                        u("class", c.slice(1));
                        break;
                    case "#":
                        u("id", c.slice(1));
                        break;
                    case "[":
                        var d = /^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(c);
                        if (!d)
                            throw new Error(r);
                        u(d[1], null !== (n = null !== (t = d[4]) && void 0 !== t ? t : d[5]) && void 0 !== n ? n : "");
                        break;
                    default:
                        throw new Error(r)
                    }
                }
                return [o, s]
            }(e), n = t[0], r = t[1], i = document.createElement(null != n ? n : "div"), o = 0, s = Object.keys(r); o < s.length; o++) {
                var a = s[o]
                  , u = r[a].join(" ");
                "style" === a ? Ik(i.style, u) : i.setAttribute(a, u)
            }
            return i
        }
        function Ik(e, t) {
            for (var n = 0, r = t.split(";"); n < r.length; n++) {
                var o = /^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(r[n]);
                o && e.setProperty(o[1], o[2], o[4] || "")
            }
        }
        var cu, Uf, Ni = ["monospace", "sans-serif", "serif"], $w = ["sans-serif-thin", "ARNO PRO", "Agency FB", "Arabic Typesetting", "Arial Unicode MS", "AvantGarde Bk BT", "BankGothic Md BT", "Batang", "Bitstream Vera Sans Mono", "Calibri", "Century", "Century Gothic", "Clarendon", "EUROSTILE", "Franklin Gothic", "Futura Bk BT", "Futura Md BT", "GOTHAM", "Gill Sans", "HELV", "Haettenschweiler", "Helvetica Neue", "Humanst521 BT", "Leelawadee", "Letter Gothic", "Levenim MT", "Lucida Bright", "Lucida Sans", "Menlo", "MS Mincho", "MS Outlook", "MS Reference Specialty", "MS UI Gothic", "MT Extra", "MYRIAD PRO", "Marlett", "Meiryo UI", "Microsoft Uighur", "Minion Pro", "Monotype Corsiva", "PMingLiU", "Pristina", "SCRIPTINA", "Segoe UI Light", "Serifa", "SimHei", "Small Fonts", "Staccato222 BT", "TRAJAN PRO", "Univers CE 55 Medium", "Vrinda", "ZWAdobeF"];
        function Hf(e) {
            return e.toDataURL()
        }
        function $f() {
            var e = screen;
            return [qn(Xt(e.availTop), null), qn(Xt(e.width) - Xt(e.availWidth) - qn(Xt(e.availLeft), 0), null), qn(Xt(e.height) - Xt(e.availHeight) - qn(Xt(e.availTop), 0), null), qn(Xt(e.availLeft), null)]
        }
        function Gf(e) {
            for (var t = 0; t < 4; ++t)
                if (e[t])
                    return !1;
            return !0
        }
        function cL(e) {
            var t;
            return tn(this, void 0, void 0, function() {
                var n, r, i, o, s, a, u;
                return nn(this, function(l) {
                    switch (l.label) {
                    case 0:
                        for (n = document,
                        r = n.createElement("div"),
                        i = new Array(e.length),
                        o = {},
                        Gw(r),
                        u = 0; u < e.length; ++u)
                            s = Mk(e[u]),
                            Gw(a = n.createElement("div")),
                            a.appendChild(s),
                            r.appendChild(a),
                            i[u] = s;
                        l.label = 1;
                    case 1:
                        return n.body ? [3, 3] : [4, Ri(50)];
                    case 2:
                        return l.sent(),
                        [3, 1];
                    case 3:
                        n.body.appendChild(r);
                        try {
                            for (u = 0; u < e.length; ++u)
                                i[u].offsetParent || (o[e[u]] = !0)
                        } finally {
                            null === (t = r.parentNode) || void 0 === t || t.removeChild(r)
                        }
                        return [2, o]
                    }
                })
            })
        }
        function Gw(e) {
            e.style.setProperty("display", "block", "important")
        }
        function qw(e) {
            return matchMedia("(inverted-colors: " + e + ")").matches
        }
        function Ww(e) {
            return matchMedia("(forced-colors: " + e + ")").matches
        }
        function Pi(e) {
            return matchMedia("(prefers-contrast: " + e + ")").matches
        }
        function zw(e) {
            return matchMedia("(prefers-reduced-motion: " + e + ")").matches
        }
        function Zw(e) {
            return matchMedia("(dynamic-range: " + e + ")").matches
        }
        var te = Math
          , ut = function() {
            return 0
        }
          , qf = {
            default: [],
            apple: [{
                font: "-apple-system-body"
            }],
            serif: [{
                fontFamily: "serif"
            }],
            sans: [{
                fontFamily: "sans-serif"
            }],
            mono: [{
                fontFamily: "monospace"
            }],
            min: [{
                fontSize: "1px"
            }],
            system: [{
                fontFamily: "system-ui"
            }]
        }
          , EL = {
            fonts: function xk() {
                return Uw(function(e, t) {
                    var n = t.document
                      , r = n.body;
                    r.style.fontSize = "48px";
                    var i = n.createElement("div")
                      , o = {}
                      , s = {}
                      , a = function(g) {
                        var v = n.createElement("span")
                          , m = v.style;
                        return m.position = "absolute",
                        m.top = "0",
                        m.left = "0",
                        m.fontFamily = g,
                        v.textContent = "mmMwWLliI0O&1",
                        i.appendChild(v),
                        v
                    }
                      , f = Ni.map(a)
                      , h = function() {
                        for (var g = {}, v = function(E) {
                            g[E] = Ni.map(function(j) {
                                return function(g, v) {
                                    return a("'" + g + "'," + v)
                                }(E, j)
                            })
                        }, m = 0, C = $w; m < C.length; m++)
                            v(C[m]);
                        return g
                    }();
                    r.appendChild(i);
                    for (var p = 0; p < Ni.length; p++)
                        o[Ni[p]] = f[p].offsetWidth,
                        s[Ni[p]] = f[p].offsetHeight;
                    return $w.filter(function(g) {
                        return function(g) {
                            return Ni.some(function(v, m) {
                                return g[m].offsetWidth !== o[v] || g[m].offsetHeight !== s[v]
                            })
                        }(h[g])
                    })
                })
            },
            domBlockers: function uL(e) {
                var t = (void 0 === e ? {} : e).debug;
                return tn(this, void 0, void 0, function() {
                    var n, r, o, s, a;
                    return nn(this, function(u) {
                        switch (u.label) {
                        case 0:
                            return function lL() {
                                return rs() || Bw()
                            }() ? (n = function aL() {
                                var e = atob;
                                return {
                                    abpIndo: ["#Iklan-Melayang", "#Kolom-Iklan-728", "#SidebarIklan-wrapper", e("YVt0aXRsZT0iN25hZ2EgcG9rZXIiIGld"), '[title="ALIENBOLA" i]'],
                                    abpvn: ["#quangcaomb", e("Lmlvc0Fkc2lvc0Fkcy1sYXlvdXQ="), ".quangcao", e("W2hyZWZePSJodHRwczovL3I4OC52bi8iXQ=="), e("W2hyZWZePSJodHRwczovL3piZXQudm4vIl0=")],
                                    adBlockFinland: [".mainostila", e("LnNwb25zb3JpdA=="), ".ylamainos", e("YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd"), e("YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd")],
                                    adBlockPersian: ["#navbar_notice_50", ".kadr", 'TABLE[width="140px"]', "#divAgahi", e("I2FkMl9pbmxpbmU=")],
                                    adBlockWarningRemoval: ["#adblock-honeypot", ".adblocker-root", ".wp_adblock_detect", e("LmhlYWRlci1ibG9ja2VkLWFk"), e("I2FkX2Jsb2NrZXI=")],
                                    adGuardAnnoyances: ['amp-embed[type="zen"]', ".hs-sosyal", "#cookieconsentdiv", 'div[class^="app_gdpr"]', ".as-oil"],
                                    adGuardBase: [".BetterJsPopOverlay", e("I2FkXzMwMFgyNTA="), e("I2Jhbm5lcmZsb2F0MjI="), e("I2FkLWJhbm5lcg=="), e("I2NhbXBhaWduLWJhbm5lcg==")],
                                    adGuardChinese: [e("LlppX2FkX2FfSA=="), e("YVtocmVmKj0iL29kMDA1LmNvbSJd"), e("YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd"), ".qq_nr_lad", "#widget-quan"],
                                    adGuardFrench: [e("I2Jsb2NrLXZpZXdzLWFkcy1zaWRlYmFyLWJsb2NrLWJsb2Nr"), "#pavePub", e("LmFkLWRlc2t0b3AtcmVjdGFuZ2xl"), ".mobile_adhesion", ".widgetadv"],
                                    adGuardGerman: [e("LmJhbm5lcml0ZW13ZXJidW5nX2hlYWRfMQ=="), e("LmJveHN0YXJ0d2VyYnVuZw=="), e("LndlcmJ1bmcz"), e("YVtocmVmXj0iaHR0cDovL3d3dy5laXMuZGUvaW5kZXgucGh0bWw/cmVmaWQ9Il0="), e("YVtocmVmXj0iaHR0cHM6Ly93d3cudGlwaWNvLmNvbS8/YWZmaWxpYXRlSWQ9Il0=")],
                                    adGuardJapanese: ["#kauli_yad_1", e("YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0="), e("Ll9wb3BJbl9pbmZpbml0ZV9hZA=="), e("LmFkZ29vZ2xl"), e("LmFkX3JlZ3VsYXIz")],
                                    adGuardMobile: [e("YW1wLWF1dG8tYWRz"), e("LmFtcF9hZA=="), 'amp-embed[type="24smi"]', "#mgid_iframe1", e("I2FkX2ludmlld19hcmVh")],
                                    adGuardRussian: [e("YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0="), e("LnJlY2xhbWE="), 'div[id^="smi2adblock"]', e("ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd"), e("I2FkX3NxdWFyZQ==")],
                                    adGuardSocial: [e("YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0="), e("YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0="), ".etsy-tweet", "#inlineShare", ".popup-social"],
                                    adGuardSpanishPortuguese: ["#barraPublicidade", "#Publicidade", "#publiEspecial", "#queTooltip", e("W2hyZWZePSJodHRwOi8vYWRzLmdsaXNwYS5jb20vIl0=")],
                                    adGuardTrackingProtection: ["#qoo-counter", e("YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=="), e("YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0="), e("YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=="), "#top100counter"],
                                    adGuardTurkish: ["#backkapat", e("I3Jla2xhbWk="), e("YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0="), e("YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd"), e("YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==")],
                                    bulgarian: [e("dGQjZnJlZW5ldF90YWJsZV9hZHM="), "#ea_intext_div", ".lapni-pop-over", "#xenium_hot_offers", e("I25ld0Fk")],
                                    easyList: [e("I0FEX0NPTlRST0xfMjg="), e("LnNlY29uZC1wb3N0LWFkcy13cmFwcGVy"), ".universalboxADVBOX03", e("LmFkdmVydGlzZW1lbnQtNzI4eDkw"), e("LnNxdWFyZV9hZHM=")],
                                    easyListChina: [e("YVtocmVmKj0iLndlbnNpeHVldGFuZy5jb20vIl0="), e("LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=="), e("LmZyb250cGFnZUFkdk0="), "#taotaole", "#aafoot.top_box"],
                                    easyListCookie: ["#AdaCompliance.app-notice", ".text-center.rgpd", ".panel--cookie", ".js-cookies-andromeda", ".elxtr-consent"],
                                    easyListCzechSlovak: ["#onlajny-stickers", e("I3Jla2xhbW5pLWJveA=="), e("LnJla2xhbWEtbWVnYWJvYXJk"), ".sklik", e("W2lkXj0ic2tsaWtSZWtsYW1hIl0=")],
                                    easyListDutch: [e("I2FkdmVydGVudGll"), e("I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=="), ".adstekst", e("YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0="), "#semilo-lrectangle"],
                                    easyListGermany: [e("I0FkX1dpbjJkYXk="), e("I3dlcmJ1bmdzYm94MzAw"), e("YVtocmVmXj0iaHR0cDovL3d3dy5yb3RsaWNodGthcnRlaS5jb20vP3NjPSJd"), e("I3dlcmJ1bmdfd2lkZXNreXNjcmFwZXJfc2NyZWVu"), e("YVtocmVmXj0iaHR0cDovL2xhbmRpbmcucGFya3BsYXR6a2FydGVpLmNvbS8/YWc9Il0=")],
                                    easyListItaly: [e("LmJveF9hZHZfYW5udW5jaQ=="), ".sb-box-pubbliredazionale", e("YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd"), e("YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd"), e("YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ==")],
                                    easyListLithuania: [e("LnJla2xhbW9zX3RhcnBhcw=="), e("LnJla2xhbW9zX251b3JvZG9z"), e("aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd"), e("aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd"), e("aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd")],
                                    estonian: [e("QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==")],
                                    fanboyAnnoyances: ["#feedback-tab", "#taboola-below-article", ".feedburnerFeedBlock", ".widget-feedburner-counter", '[title="Subscribe to our blog"]'],
                                    fanboyAntiFacebook: [".util-bar-module-firefly-visible"],
                                    fanboyEnhancedTrackers: [".open.pushModal", "#issuem-leaky-paywall-articles-zero-remaining-nag", "#sovrn_container", 'div[class$="-hide"][zoompage-fontsize][style="display: block;"]', ".BlockNag__Card"],
                                    fanboySocial: [".td-tags-and-social-wrapper-box", ".twitterContainer", ".youtube-social", 'a[title^="Like us on Facebook"]', 'img[alt^="Share on Digg"]'],
                                    frellwitSwedish: [e("YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=="), e("YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=="), "article.category-samarbete", e("ZGl2LmhvbGlkQWRz"), "ul.adsmodern"],
                                    greekAdBlock: [e("QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd"), e("QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=="), e("QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd"), "DIV.agores300", "TABLE.advright"],
                                    hungarian: ["#cemp_doboz", ".optimonk-iframe-container", e("LmFkX19tYWlu"), e("W2NsYXNzKj0iR29vZ2xlQWRzIl0="), "#hirdetesek_box"],
                                    iDontCareAboutCookies: ['.alert-info[data-block-track*="CookieNotice"]', ".ModuleTemplateCookieIndicator", ".o--cookies--container", ".cookie-msg-info-container", "#cookies-policy-sticky"],
                                    icelandicAbp: [e("QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ==")],
                                    latvian: [e("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0="), e("YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ==")],
                                    listKr: [e("YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0="), e("I2xpdmVyZUFkV3JhcHBlcg=="), e("YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=="), e("aW5zLmZhc3R2aWV3LWFk"), ".revenue_unit_item.dable"],
                                    listeAr: [e("LmdlbWluaUxCMUFk"), ".right-and-left-sponsers", e("YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=="), e("YVtocmVmKj0iYm9vcmFxLm9yZyJd"), e("YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd")],
                                    listeFr: [e("YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=="), e("I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=="), e("YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0="), ".site-pub-interstitiel", 'div[id^="crt-"][data-criteo-id]'],
                                    officialPolish: ["#ceneo-placeholder-ceneo-12", e("W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd"), e("YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=="), e("YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=="), e("ZGl2I3NrYXBpZWNfYWQ=")],
                                    ro: [e("YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd"), 'a[href^="/magazin/"]', e("YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd"), e("YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0="), e("YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd")],
                                    ruAd: [e("YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd"), e("YVtocmVmKj0iLy91dGltZy5ydS8iXQ=="), e("YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0="), "#pgeldiz", ".yandex-rtb-block"],
                                    thaiAds: ["a[href*=macau-uta-popup]", e("I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=="), e("LmFkczMwMHM="), ".bumq", ".img-kosana"],
                                    webAnnoyancesUltralist: ["#mod-social-share-2", "#social-tools", e("LmN0cGwtZnVsbGJhbm5lcg=="), ".zergnet-recommend", ".yt.btn-link.btn-md.btn"]
                                }
                            }(),
                            r = Object.keys(n),
                            [4, cL((a = []).concat.apply(a, r.map(function(l) {
                                return n[l]
                            })))]) : [2, void 0];
                        case 1:
                            return o = u.sent(),
                            t && function dL(e, t) {
                                for (var n = "DOM blockers debug:\n```", r = 0, i = Object.keys(e); r < i.length; r++) {
                                    var o = i[r];
                                    n += "\n" + o + ":";
                                    for (var s = 0, a = e[o]; s < a.length; s++) {
                                        var u = a[s];
                                        n += "\n  " + (t[u] ? "\u{1f6ab}" : "\u27a1\ufe0f") + " " + u
                                    }
                                }
                                console.log(n + "\n```")
                            }(n, o),
                            (s = r.filter(function(l) {
                                var c = n[l];
                                return Kt(c.map(function(f) {
                                    return o[f]
                                })) > .6 * c.length
                            })).sort(),
                            [2, s]
                        }
                    })
                })
            },
            fontPreferences: function wL() {
                return function bL(e, t) {
                    return void 0 === t && (t = 4e3),
                    Uw(function(n, r) {
                        var i = r.document
                          , o = i.body
                          , s = o.style;
                        s.width = t + "px",
                        s.webkitTextSizeAdjust = s.textSizeAdjust = "none",
                        jf() ? o.style.zoom = "" + 1 / r.devicePixelRatio : rs() && (o.style.zoom = "reset");
                        var a = i.createElement("div");
                        return a.textContent = gh(Array(t / 20 << 0)).map(function() {
                            return "word"
                        }).join(" "),
                        o.appendChild(a),
                        e(i, o)
                    }, '<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">')
                }(function(e, t) {
                    for (var n = {}, r = {}, i = 0, o = Object.keys(qf); i < o.length; i++) {
                        var a = qf[s = o[i]]
                          , u = a[0]
                          , l = void 0 === u ? {} : u
                          , c = a[1]
                          , d = void 0 === c ? "mmMwWLliI0fiflO&1" : c
                          , f = e.createElement("span");
                        f.textContent = d,
                        f.style.whiteSpace = "nowrap";
                        for (var h = 0, p = Object.keys(l); h < p.length; h++) {
                            var g = p[h]
                              , v = l[g];
                            void 0 !== v && (f.style[g] = v)
                        }
                        n[s] = f,
                        t.appendChild(e.createElement("br")),
                        t.appendChild(f)
                    }
                    for (var m = 0, C = Object.keys(qf); m < C.length; m++) {
                        var s;
                        r[s = C[m]] = n[s].getBoundingClientRect().width
                    }
                    return r
                })
            },
            audio: function wk() {
                var e = window
                  , t = e.OfflineAudioContext || e.webkitOfflineAudioContext;
                if (!t)
                    return -2;
                if (function bk() {
                    return rs() && !Bf() && !function yk() {
                        var e = window;
                        return Kt(["DOMRectList"in e, "RTCPeerConnectionIceEvent"in e, "SVGGeometryElement"in e, "ontransitioncancel"in e]) >= 3
                    }()
                }())
                    return -1;
                var i = new t(1,5e3,44100)
                  , o = i.createOscillator();
                o.type = "triangle",
                o.frequency.value = 1e4;
                var s = i.createDynamicsCompressor();
                s.threshold.value = -50,
                s.knee.value = 40,
                s.ratio.value = 12,
                s.attack.value = 0,
                s.release.value = .25,
                o.connect(s),
                s.connect(i.destination),
                o.start(0);
                var a = function Ek(e) {
                    var o = function() {}
                      , s = new Promise(function(a, u) {
                        var l = !1
                          , c = 0
                          , d = 0;
                        e.oncomplete = function(p) {
                            return a(p.renderedBuffer)
                        }
                        ;
                        var f = function() {
                            setTimeout(function() {
                                return u(Hw("timeout"))
                            }, Math.min(500, d + 5e3 - Date.now()))
                        }
                          , h = function() {
                            try {
                                switch (e.startRendering(),
                                e.state) {
                                case "running":
                                    d = Date.now(),
                                    l && f();
                                    break;
                                case "suspended":
                                    document.hidden || c++,
                                    l && c >= 3 ? u(Hw("suspended")) : setTimeout(h, 500)
                                }
                            } catch (p) {
                                u(p)
                            }
                        };
                        h(),
                        o = function() {
                            l || (l = !0,
                            d > 0 && f())
                        }
                    }
                    );
                    return [s, o]
                }(i)
                  , l = a[1]
                  , c = a[0].then(function(d) {
                    return function Sk(e) {
                        for (var t = 0, n = 0; n < e.length; ++n)
                            t += Math.abs(e[n]);
                        return t
                    }(d.getChannelData(0).subarray(4500))
                }, function(d) {
                    if ("timeout" === d.name || "suspended" === d.name)
                        return -3;
                    throw d
                });
                return Lf(c),
                function() {
                    return l(),
                    c
                }
            },
            screenFrame: function Zk() {
                var e = this
                  , t = function zk() {
                    var e = this;
                    return function Wk() {
                        if (void 0 === Uf) {
                            var e = function() {
                                var t = $f();
                                Gf(t) ? Uf = setTimeout(e, 2500) : (cu = t,
                                Uf = void 0)
                            };
                            e()
                        }
                    }(),
                    function() {
                        return tn(e, void 0, void 0, function() {
                            var t;
                            return nn(this, function(n) {
                                switch (n.label) {
                                case 0:
                                    return Gf(t = $f()) ? cu ? [2, gh(cu)] : function Dk() {
                                        var e = document;
                                        return e.fullscreenElement || e.msFullscreenElement || e.mozFullScreenElement || e.webkitFullscreenElement || null
                                    }() ? [4, Ck()] : [3, 2] : [3, 2];
                                case 1:
                                    n.sent(),
                                    t = $f(),
                                    n.label = 2;
                                case 2:
                                    return Gf(t) || (cu = t),
                                    [2, t]
                                }
                            })
                        })
                    }
                }();
                return function() {
                    return tn(e, void 0, void 0, function() {
                        var n, r;
                        return nn(this, function(i) {
                            switch (i.label) {
                            case 0:
                                return [4, t()];
                            case 1:
                                return n = i.sent(),
                                [2, [(r = function(o) {
                                    return null === o ? null : kw(o, 10)
                                }
                                )(n[0]), r(n[1]), r(n[2]), r(n[3])]]
                            }
                        })
                    })
                }
            },
            osCpu: function jk() {
                return navigator.oscpu
            },
            languages: function Bk() {
                var e = navigator
                  , t = []
                  , n = e.language || e.userLanguage || e.browserLanguage || e.systemLanguage;
                if (void 0 !== n && t.push([n]),
                Array.isArray(e.languages))
                    jf() && function vk() {
                        var e = window;
                        return Kt([!("MediaSettingsRange"in e), "RTCEncodedAudioFrame"in e, "" + e.Intl == "[object Intl]", "" + e.Reflect == "[object Reflect]"]) >= 3
                    }() || t.push(e.languages);
                else if ("string" == typeof e.languages) {
                    var r = e.languages;
                    r && t.push(r.split(","))
                }
                return t
            },
            colorDepth: function Hk() {
                return window.screen.colorDepth
            },
            deviceMemory: function Uk() {
                return qn(Xt(navigator.deviceMemory), void 0)
            },
            screenResolution: function $k() {
                var e = screen
                  , t = function(r) {
                    return qn(Vf(r), null)
                }
                  , n = [t(e.width), t(e.height)];
                return n.sort().reverse(),
                n
            },
            hardwareConcurrency: function Yk() {
                return qn(Vf(navigator.hardwareConcurrency), void 0)
            },
            timezone: function Jk() {
                var e, t = null === (e = window.Intl) || void 0 === e ? void 0 : e.DateTimeFormat;
                if (t) {
                    var n = (new t).resolvedOptions().timeZone;
                    if (n)
                        return n
                }
                var r = -function Qk() {
                    var e = (new Date).getFullYear();
                    return Math.max(Xt(new Date(e,0,1).getTimezoneOffset()), Xt(new Date(e,6,1).getTimezoneOffset()))
                }();
                return "UTC" + (r >= 0 ? "+" : "") + Math.abs(r)
            },
            sessionStorage: function Xk() {
                try {
                    return !!window.sessionStorage
                } catch (e) {
                    return !0
                }
            },
            localStorage: function Kk() {
                try {
                    return !!window.localStorage
                } catch (e) {
                    return !0
                }
            },
            indexedDB: function eL() {
                if (!jw() && !function gk() {
                    var e = window
                      , t = navigator;
                    return Kt(["msWriteProfilerMark"in e, "MSStream"in e, "msLaunchUri"in t, "msSaveBlob"in t]) >= 3 && !jw()
                }())
                    try {
                        return !!window.indexedDB
                    } catch (e) {
                        return !0
                    }
            },
            openDatabase: function tL() {
                return !!window.openDatabase
            },
            cpuClass: function nL() {
                return navigator.cpuClass
            },
            platform: function rL() {
                var e = navigator.platform;
                return "MacIntel" === e && rs() && !Bf() ? function _k() {
                    if ("iPad" === navigator.platform)
                        return !0;
                    var e = screen
                      , t = e.width / e.height;
                    return Kt(["MediaSource"in window, !!Element.prototype.webkitRequestFullscreen, t > .65 && t < 1.53]) >= 2
                }() ? "iPad" : "iPhone" : e
            },
            plugins: function Rk() {
                var e = navigator.plugins;
                if (e) {
                    for (var t = [], n = 0; n < e.length; ++n) {
                        var r = e[n];
                        if (r) {
                            for (var i = [], o = 0; o < r.length; ++o) {
                                var s = r[o];
                                i.push({
                                    type: s.type,
                                    suffixes: s.suffixes
                                })
                            }
                            t.push({
                                name: r.name,
                                description: r.description,
                                mimeTypes: i
                            })
                        }
                    }
                    return t
                }
            },
            canvas: function Fk() {
                var t, n, e = !1, r = function Nk() {
                    var e = document.createElement("canvas");
                    return e.width = 1,
                    e.height = 1,
                    [e, e.getContext("2d")]
                }(), i = r[0], o = r[1];
                if (function Pk(e, t) {
                    return !(!t || !e.toDataURL)
                }(i, o)) {
                    e = function Ok(e) {
                        return e.rect(0, 0, 10, 10),
                        e.rect(2, 2, 6, 6),
                        !e.isPointInPath(5, 5, "evenodd")
                    }(o),
                    function kk(e, t) {
                        e.width = 240,
                        e.height = 60,
                        t.textBaseline = "alphabetic",
                        t.fillStyle = "#f60",
                        t.fillRect(100, 1, 62, 20),
                        t.fillStyle = "#069",
                        t.font = '11pt "Times New Roman"';
                        var n = "Cwm fjordbank gly " + String.fromCharCode(55357, 56835);
                        t.fillText(n, 2, 15),
                        t.fillStyle = "rgba(102, 204, 0, 0.2)",
                        t.font = "18pt Arial",
                        t.fillText(n, 4, 45)
                    }(i, o);
                    var s = Hf(i);
                    s !== Hf(i) ? t = n = "unstable" : (n = s,
                    function Lk(e, t) {
                        e.width = 122,
                        e.height = 110,
                        t.globalCompositeOperation = "multiply";
                        for (var n = 0, r = [["#f2f", 40, 40], ["#2ff", 80, 40], ["#ff2", 60, 80]]; n < r.length; n++) {
                            var i = r[n]
                              , s = i[1]
                              , a = i[2];
                            t.fillStyle = i[0],
                            t.beginPath(),
                            t.arc(s, a, 40, 0, 2 * Math.PI, !0),
                            t.closePath(),
                            t.fill()
                        }
                        t.fillStyle = "#f9c",
                        t.arc(60, 60, 60, 0, 2 * Math.PI, !0),
                        t.arc(60, 60, 20, 0, 2 * Math.PI, !0),
                        t.fill("evenodd")
                    }(i, o),
                    t = Hf(i))
                } else
                    t = n = "";
                return {
                    winding: e,
                    geometry: t,
                    text: n
                }
            },
            touchSupport: function Vk() {
                var n, e = navigator, t = 0;
                void 0 !== e.maxTouchPoints ? t = Vf(e.maxTouchPoints) : void 0 !== e.msMaxTouchPoints && (t = e.msMaxTouchPoints);
                try {
                    document.createEvent("TouchEvent"),
                    n = !0
                } catch (i) {
                    n = !1
                }
                return {
                    maxTouchPoints: t,
                    touchEvent: n,
                    touchStart: "ontouchstart"in window
                }
            },
            vendor: function iL() {
                return navigator.vendor || ""
            },
            vendorFlavors: function oL() {
                for (var e = [], t = 0, n = ["chrome", "safari", "__crWeb", "__gCrWeb", "yandex", "__yb", "__ybro", "__firefox__", "__edgeTrackingPreventionStatistics", "webkit", "oprt", "samsungAr", "ucweb", "UCShellJava", "puffinDevice"]; t < n.length; t++) {
                    var r = n[t]
                      , i = window[r];
                    i && "object" == typeof i && e.push(r)
                }
                return e.sort()
            },
            cookiesEnabled: function sL() {
                var e = document;
                try {
                    e.cookie = "cookietest=1; SameSite=Strict;";
                    var t = -1 !== e.cookie.indexOf("cookietest=");
                    return e.cookie = "cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT",
                    t
                } catch (n) {
                    return !1
                }
            },
            colorGamut: function fL() {
                for (var e = 0, t = ["rec2020", "p3", "srgb"]; e < t.length; e++) {
                    var n = t[e];
                    if (matchMedia("(color-gamut: " + n + ")").matches)
                        return n
                }
            },
            invertedColors: function hL() {
                return !!qw("inverted") || !qw("none") && void 0
            },
            forcedColors: function pL() {
                return !!Ww("active") || !Ww("none") && void 0
            },
            monochrome: function mL() {
                if (matchMedia("(min-monochrome: 0)").matches) {
                    for (var e = 0; e <= 100; ++e)
                        if (matchMedia("(max-monochrome: " + e + ")").matches)
                            return e;
                    throw new Error("Too high value")
                }
            },
            contrast: function vL() {
                return Pi("no-preference") ? 0 : Pi("high") || Pi("more") ? 1 : Pi("low") || Pi("less") ? -1 : Pi("forced") ? 10 : void 0
            },
            reducedMotion: function yL() {
                return !!zw("reduce") || !zw("no-preference") && void 0
            },
            hdr: function _L() {
                return !!Zw("high") || !Zw("standard") && void 0
            },
            math: function DL() {
                var ne, t = te.acosh || ut, n = te.asin || ut, r = te.asinh || ut, i = te.atanh || ut, o = te.atan || ut, s = te.sin || ut, a = te.sinh || ut, u = te.cos || ut, l = te.cosh || ut, c = te.tan || ut, d = te.tanh || ut, f = te.exp || ut, h = te.expm1 || ut, p = te.log1p || ut;
                return {
                    acos: (te.acos || ut)(.12312423423423424),
                    acosh: t(1e308),
                    acoshPf: (ne = 1e154,
                    te.log(ne + te.sqrt(ne * ne - 1))),
                    asin: n(.12312423423423424),
                    asinh: r(1),
                    asinhPf: te.log(1 + te.sqrt(2)),
                    atanh: i(.5),
                    atanhPf: te.log(3) / 2,
                    atan: o(.5),
                    sin: s(-1e300),
                    sinh: a(1),
                    sinhPf: te.exp(1) - 1 / te.exp(1) / 2,
                    cos: u(10.000000000123),
                    cosh: l(1),
                    coshPf: (te.exp(1) + 1 / te.exp(1)) / 2,
                    tan: c(-1e300),
                    tanh: d(1),
                    tanhPf: (te.exp(2) - 1) / (te.exp(2) + 1),
                    exp: f(1),
                    expm1: h(1),
                    expm1Pf: te.exp(1) - 1,
                    log1p: p(10),
                    log1pPf: te.log(11),
                    powPI: te.pow(te.PI, -100)
                }
            }
        };
        function IL(e) {
            var t = function AL(e) {
                if (Bw())
                    return .4;
                if (rs())
                    return Bf() ? .5 : .3;
                var t = e.platform.value || "";
                return /^Win/.test(t) ? .6 : /^Mac/.test(t) ? .5 : .7
            }(e)
              , n = function TL(e) {
                return kw(.99 + .01 * e, 1e-4)
            }(t);
            return {
                score: t,
                comment: "$ if upgrade to Pro: https://fpjs.dev/pro".replace(/\$/g, "" + n)
            }
        }
        function Yw(e) {
            return JSON.stringify(e, function(t, n) {
                return n instanceof Error ? function lk(e) {
                    var t;
                    return yu({
                        name: e.name,
                        message: e.message,
                        stack: null === (t = e.stack) || void 0 === t ? void 0 : t.split("\n")
                    }, e)
                }(n) : n
            }, 2)
        }
        function Jw(e) {
            return function uk(e, t) {
                var c, n = (e = e || "").length % 16, r = e.length - n, i = [0, t = t || 0], o = [0, t], s = [0, 0], a = [0, 0], u = [2277735313, 289559509], l = [1291169091, 658871167];
                for (c = 0; c < r; c += 16)
                    s = [255 & e.charCodeAt(c + 4) | (255 & e.charCodeAt(c + 5)) << 8 | (255 & e.charCodeAt(c + 6)) << 16 | (255 & e.charCodeAt(c + 7)) << 24, 255 & e.charCodeAt(c) | (255 & e.charCodeAt(c + 1)) << 8 | (255 & e.charCodeAt(c + 2)) << 16 | (255 & e.charCodeAt(c + 3)) << 24],
                    a = [255 & e.charCodeAt(c + 12) | (255 & e.charCodeAt(c + 13)) << 8 | (255 & e.charCodeAt(c + 14)) << 16 | (255 & e.charCodeAt(c + 15)) << 24, 255 & e.charCodeAt(c + 8) | (255 & e.charCodeAt(c + 9)) << 8 | (255 & e.charCodeAt(c + 10)) << 16 | (255 & e.charCodeAt(c + 11)) << 24],
                    s = Fi(s = Ot(s, u), 31),
                    i = lr(i = Fi(i = ve(i, s = Ot(s, l)), 27), o),
                    i = lr(Ot(i, [0, 5]), [0, 1390208809]),
                    a = Fi(a = Ot(a, l), 33),
                    o = lr(o = Fi(o = ve(o, a = Ot(a, u)), 31), i),
                    o = lr(Ot(o, [0, 5]), [0, 944331445]);
                switch (s = [0, 0],
                a = [0, 0],
                n) {
                case 15:
                    a = ve(a, bt([0, e.charCodeAt(c + 14)], 48));
                case 14:
                    a = ve(a, bt([0, e.charCodeAt(c + 13)], 40));
                case 13:
                    a = ve(a, bt([0, e.charCodeAt(c + 12)], 32));
                case 12:
                    a = ve(a, bt([0, e.charCodeAt(c + 11)], 24));
                case 11:
                    a = ve(a, bt([0, e.charCodeAt(c + 10)], 16));
                case 10:
                    a = ve(a, bt([0, e.charCodeAt(c + 9)], 8));
                case 9:
                    a = Ot(a = ve(a, [0, e.charCodeAt(c + 8)]), l),
                    o = ve(o, a = Ot(a = Fi(a, 33), u));
                case 8:
                    s = ve(s, bt([0, e.charCodeAt(c + 7)], 56));
                case 7:
                    s = ve(s, bt([0, e.charCodeAt(c + 6)], 48));
                case 6:
                    s = ve(s, bt([0, e.charCodeAt(c + 5)], 40));
                case 5:
                    s = ve(s, bt([0, e.charCodeAt(c + 4)], 32));
                case 4:
                    s = ve(s, bt([0, e.charCodeAt(c + 3)], 24));
                case 3:
                    s = ve(s, bt([0, e.charCodeAt(c + 2)], 16));
                case 2:
                    s = ve(s, bt([0, e.charCodeAt(c + 1)], 8));
                case 1:
                    s = Ot(s = ve(s, [0, e.charCodeAt(c)]), u),
                    i = ve(i, s = Ot(s = Fi(s, 31), l))
                }
                return i = lr(i = ve(i, [0, e.length]), o = ve(o, [0, e.length])),
                o = lr(o, i),
                i = lr(i = Ow(i), o = Ow(o)),
                o = lr(o, i),
                ("00000000" + (i[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (i[1] >>> 0).toString(16)).slice(-8) + ("00000000" + (o[0] >>> 0).toString(16)).slice(-8) + ("00000000" + (o[1] >>> 0).toString(16)).slice(-8)
            }(function xL(e) {
                for (var t = "", n = 0, r = Object.keys(e).sort(); n < r.length; n++) {
                    var i = r[n]
                      , o = e[i]
                      , s = o.error ? "error" : JSON.stringify(o.value);
                    t += (t ? "|" : "") + i.replace(/([:|\\])/g, "\\$1") + ":" + s
                }
                return t
            }(e))
        }
        function FL(e) {
            return void 0 === e && (e = 50),
            function ak(e, t) {
                void 0 === t && (t = 1 / 0);
                var n = window.requestIdleCallback;
                return n ? new Promise(function(r) {
                    return n.call(window, function() {
                        return r()
                    }, {
                        timeout: t
                    })
                }
                ) : Ri(Math.min(e, t))
            }(e, 2 * e)
        }
        function NL(e, t) {
            var n = Date.now();
            return {
                get: function(r) {
                    return tn(this, void 0, void 0, function() {
                        var i, o, s;
                        return nn(this, function(a) {
                            switch (a.label) {
                            case 0:
                                return i = Date.now(),
                                [4, e()];
                            case 1:
                                return o = a.sent(),
                                s = function RL(e) {
                                    var t;
                                    return {
                                        get visitorId() {
                                            return void 0 === t && (t = Jw(this.components)),
                                            t
                                        },
                                        set visitorId(r) {
                                            t = r
                                        },
                                        confidence: IL(e),
                                        components: e,
                                        version: "3.3.6"
                                    }
                                }(o),
                                (t || (null == r ? void 0 : r.debug)) && console.log("Copy the text below to get the debug data:\n\n```\nversion: " + s.version + "\nuserAgent: " + navigator.userAgent + "\ntimeBetweenLoadAndGet: " + (i - n) + "\nvisitorId: " + s.visitorId + "\ncomponents: " + Yw(o) + "\n```"),
                                [2, s]
                            }
                        })
                    })
                }
            }
        }
        var kL = {
            load: function OL(e) {
                var t = void 0 === e ? {} : e
                  , n = t.delayFallback
                  , r = t.debug
                  , i = t.monitoring
                  , o = void 0 === i || i;
                return tn(this, void 0, void 0, function() {
                    var s;
                    return nn(this, function(a) {
                        switch (a.label) {
                        case 0:
                            return o && function PL() {
                                if (!(window.__fpjs_d_m || Math.random() >= .001))
                                    try {
                                        var e = new XMLHttpRequest;
                                        e.open("get", "https://m1.openfpcdn.io/fingerprintjs/v3.3.6/npm-monitoring", !0),
                                        e.send()
                                    } catch (t) {
                                        console.error(t)
                                    }
                            }(),
                            [4, FL(n)];
                        case 1:
                            return a.sent(),
                            s = function SL(e) {
                                return function pk(e, t, n) {
                                    var r = Object.keys(e).filter(function(o) {
                                        return function dk(e, t) {
                                            return !function ck(e, t) {
                                                for (var n = 0, r = e.length; n < r; ++n)
                                                    if (e[n] === t)
                                                        return !0;
                                                return !1
                                            }(e, t)
                                        }(n, o)
                                    })
                                      , i = Array(r.length);
                                    return Pw(r, function(o, s) {
                                        i[s] = function hk(e, t) {
                                            var n = new Promise(function(r) {
                                                var i = Date.now();
                                                Nw(e.bind(null, t), function() {
                                                    for (var o = [], s = 0; s < arguments.length; s++)
                                                        o[s] = arguments[s];
                                                    var a = Date.now() - i;
                                                    if (!o[0])
                                                        return r(function() {
                                                            return {
                                                                error: Lw(o[1]),
                                                                duration: a
                                                            }
                                                        });
                                                    var u = o[1];
                                                    if (Vw(u))
                                                        return r(function() {
                                                            return {
                                                                value: u,
                                                                duration: a
                                                            }
                                                        });
                                                    r(function() {
                                                        return new Promise(function(l) {
                                                            var c = Date.now();
                                                            Nw(u, function() {
                                                                for (var d = [], f = 0; f < arguments.length; f++)
                                                                    d[f] = arguments[f];
                                                                var h = a + Date.now() - c;
                                                                if (!d[0])
                                                                    return l({
                                                                        error: Lw(d[1]),
                                                                        duration: h
                                                                    });
                                                                l({
                                                                    value: d[1],
                                                                    duration: h
                                                                })
                                                            })
                                                        }
                                                        )
                                                    })
                                                })
                                            }
                                            );
                                            return Lf(n),
                                            function() {
                                                return n.then(function(i) {
                                                    return i()
                                                })
                                            }
                                        }(e[o], t)
                                    }),
                                    function() {
                                        return tn(this, void 0, void 0, function() {
                                            var s, a, u, c, d;
                                            return nn(this, function(h) {
                                                switch (h.label) {
                                                case 0:
                                                    for (s = {},
                                                    a = 0,
                                                    u = r; a < u.length; a++)
                                                        s[u[a]] = void 0;
                                                    c = Array(r.length),
                                                    d = function() {
                                                        var p;
                                                        return nn(this, function(g) {
                                                            switch (g.label) {
                                                            case 0:
                                                                return p = !0,
                                                                [4, Pw(r, function(v, m) {
                                                                    if (!c[m])
                                                                        if (i[m]) {
                                                                            var C = i[m]().then(function(y) {
                                                                                return s[v] = y
                                                                            });
                                                                            Lf(C),
                                                                            c[m] = C
                                                                        } else
                                                                            p = !1
                                                                })];
                                                            case 1:
                                                                return g.sent(),
                                                                p ? [2, "break"] : [4, Ri(1)];
                                                            case 2:
                                                                return g.sent(),
                                                                [2]
                                                            }
                                                        })
                                                    }
                                                    ,
                                                    h.label = 1;
                                                case 1:
                                                    return [5, d()];
                                                case 2:
                                                    if ("break" === h.sent())
                                                        return [3, 4];
                                                    h.label = 3;
                                                case 3:
                                                    return [3, 1];
                                                case 4:
                                                    return [4, Promise.all(c)];
                                                case 5:
                                                    return h.sent(),
                                                    [2, s]
                                                }
                                            })
                                        })
                                    }
                                }(EL, e, [])
                            }({
                                debug: r
                            }),
                            [2, NL(s, r)]
                        }
                    })
                })
            },
            hashComponents: Jw,
            componentsToDebugString: Yw
        };
        function Qw(e, t, n, r, i, o, s) {
            try {
                var a = e[o](s)
                  , u = a.value
            } catch (l) {
                return void n(l)
            }
            a.done ? t(u) : Promise.resolve(u).then(r, i)
        }
        function Se(e) {
            return function() {
                var t = this
                  , n = arguments;
                return new Promise(function(r, i) {
                    var o = e.apply(t, n);
                    function s(u) {
                        Qw(o, r, i, s, a, "next", u)
                    }
                    function a(u) {
                        Qw(o, r, i, s, a, "throw", u)
                    }
                    s(void 0)
                }
                )
            }
        }
        let Wf = ( () => {
            class e {
                constructor() {}
                log(n) {
                    console.log(new Date + ": " + JSON.stringify(n))
                }
                info(n) {
                    console.log(new Date + ": " + JSON.stringify(n))
                }
                debug(n) {
                    console.log(new Date + ": " + JSON.stringify(n))
                }
                error(n) {
                    console.log(new Date + ": " + JSON.stringify(n))
                }
                warn(n) {
                    console.log(new Date + ": " + JSON.stringify(n))
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "root"
            }),
            e
        }
        )();
        class Oi {
            static setInjector() {}
            static getInjector() {
                let t = Ye.create([{
                    provide: zf,
                    deps: []
                }, {
                    provide: Wf,
                    deps: []
                }]);
                return Oi.injector = t,
                Oi.injector
            }
        }
        const Xw = {
            production: !1,
            baseApiUrl: function LL() {
                let e = window.location.href
                  , t = "";
                return e.indexOf("localhost") > -1 && (t = "http://localhost:5032/api/v1"),
                e.indexOf("uniflow-dev.unimrktresponse.net") > -1 && (t = "https://uniflow-dev.unimrktresponse.net/api/v1"),
                e.indexOf("uniflow.unimrktresponse.net") > -1 && (t = "https://uniflow.unimrktresponse.net/api/v1"),
                (null == t || "" == t) && (t = "https://uniflow.unimrktresponse.net/api/v1"),
                t
            }(),
            instrumentationKey: ""
        };
        let zf = ( () => {
            class e {
                constructor(n) {
                    this.http = n,
                    this.genericError = "Some error occured ",
                    this.requestOptions = {},
                    this.loggerSevice = Oi.getInjector().get(Wf),
                    this._baseApiUrl = Xw.baseApiUrl,
                    new wn
                }
                intercept(n, r) {
                    return r.handle(n)
                }
                get(n) {
                    var r = this;
                    const i = this._baseApiUrl + n;
                    return new Promise(function() {
                        var o = Se(function*(s, a) {
                            r.http.get(i, r.requestOptions).toPromise().then(u => {
                                s(u)
                            }
                            ).catch(u => {
                                a(u)
                            }
                            )
                        });
                        return function(s, a) {
                            return o.apply(this, arguments)
                        }
                    }())
                }
                getPlain(n) {
                    var r = this;
                    return new Promise(function() {
                        var i = Se(function*(o, s) {
                            r.http.get(n, r.requestOptions).toPromise().then(a => {
                                o(a)
                            }
                            ).catch(a => {
                                s(a)
                            }
                            )
                        });
                        return function(o, s) {
                            return i.apply(this, arguments)
                        }
                    }())
                }
                post(n, r) {
                    var i = this;
                    const o = this._baseApiUrl + n;
                    return new Promise(function() {
                        var s = Se(function*(a, u) {
                            i.http.post(o, r, i.requestOptions).toPromise().then(l => {
                                a(l)
                            }
                            ).catch(l => {
                                u(l)
                            }
                            )
                        });
                        return function(a, u) {
                            return s.apply(this, arguments)
                        }
                    }())
                }
                postPlain(n, r) {
                    var i = this;
                    return new Promise(function() {
                        var o = Se(function*(s, a) {
                            i.http.post(n, r, i.requestOptions).toPromise().then(u => {
                                s(u)
                            }
                            ).catch(u => {
                                a(u)
                            }
                            )
                        });
                        return function(s, a) {
                            return o.apply(this, arguments)
                        }
                    }())
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(S(DC))
            }
            ,
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "root"
            }),
            e
        }
        )();
        class VL {
            constructor() {
                this.loadScreenerPath = "/landing",
                this.surveyEndingPath = "/ending",
                this.submitRespondentAnswer = "/screener",
                this.submitRedirection = "/redirection",
                this.insertReasearchDefenderLog = "/ResearchDefenderSearchLog",
                this.insertResearchDefenderReviewLog = "/ResearchDefenderReviewLog",
                this.heartBeat = "/heartbeat",
                this.researchDefenderPredupe = "/ResearchDefenderPredupe"
            }
        }
        class jL {
            constructor() {
                this.reseachDefenderApiTimeOut = 100
            }
        }
        let du = ( () => {
            class e extends zf {
                constructor() {
                    super(...arguments),
                    this.serviceUrl = new VL,
                    this.apiServiceUrl = new jL
                }
                loadScreener(n) {
                    var r = this;
                    return new Promise(function() {
                        var i = Se(function*(o, s) {
                            r.get(r.serviceUrl.loadScreenerPath + n).then(u => {
                                o(u)
                            }
                            ).catch(u => {
                                s(u)
                            }
                            )
                        });
                        return function(o, s) {
                            return i.apply(this, arguments)
                        }
                    }())
                }
                submitRespondentAnswer(n) {
                    var r = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var i = Se(function*(o, s) {
                                yield r.post(r.serviceUrl.submitRespondentAnswer, n).then(a => {
                                    o(a)
                                }
                                ).catch(a => {
                                    s(a)
                                }
                                )
                            });
                            return function(o, s) {
                                return i.apply(this, arguments)
                            }
                        }())
                    })()
                }
                surveyEnding(n) {
                    var r = this;
                    return new Promise(function() {
                        var i = Se(function*(o, s) {
                            r.get(r.serviceUrl.surveyEndingPath + n).then(u => {
                                o(u)
                            }
                            ).catch(u => {
                                s(u)
                            }
                            )
                        });
                        return function(o, s) {
                            return i.apply(this, arguments)
                        }
                    }())
                }
                submitRedirection(n) {
                    var r = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var i = Se(function*(o, s) {
                                yield r.post(r.serviceUrl.submitRedirection, n).then(a => {
                                    o(a)
                                }
                                ).catch(a => {
                                    s(a)
                                }
                                )
                            });
                            return function(o, s) {
                                return i.apply(this, arguments)
                            }
                        }())
                    })()
                }
                researchDefenderSearchResponse(n) {
                    var r = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var i = Se(function*(o, s) {
                                yield r.getPlain(n).then(a => o(a)).catch(a => {
                                    s(a)
                                }
                                )
                            });
                            return function(o, s) {
                                return i.apply(this, arguments)
                            }
                        }())
                    })()
                }
                insertResearchDefenderSearchLog(n) {
                    var r = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var i = Se(function*(o, s) {
                                yield r.post(r.serviceUrl.insertReasearchDefenderLog, n).then(a => {
                                    o(a)
                                }
                                ).catch(a => {
                                    s(a)
                                }
                                )
                            });
                            return function(o, s) {
                                return i.apply(this, arguments)
                            }
                        }())
                    })()
                }
                researchDefenderReviewResponse(n, r) {
                    var i = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var o = Se(function*(s, a) {
                                yield i.postPlain(r, n).then(u => s(u)).catch(u => {
                                    a(u)
                                }
                                )
                            });
                            return function(s, a) {
                                return o.apply(this, arguments)
                            }
                        }())
                    })()
                }
                insertResearchDefenderReviewLog(n) {
                    var r = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var i = Se(function*(o, s) {
                                yield r.post(r.serviceUrl.insertResearchDefenderReviewLog, n).then(a => {
                                    o(a)
                                }
                                ).catch(a => {
                                    s(a)
                                }
                                )
                            });
                            return function(o, s) {
                                return i.apply(this, arguments)
                            }
                        }())
                    })()
                }
                loadHearBeat() {
                    var n = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var r = Se(function*(i, o) {
                                yield n.get(n.serviceUrl.heartBeat).then(s => {
                                    i(s)
                                }
                                ).catch(s => {
                                    o(s)
                                }
                                )
                            });
                            return function(i, o) {
                                return r.apply(this, arguments)
                            }
                        }())
                    })()
                }
                researchDefenderPredupe(n) {
                    var r = this;
                    return Se(function*() {
                        return new Promise(function() {
                            var i = Se(function*(o, s) {
                                yield r.post(r.serviceUrl.researchDefenderPredupe, n).then(a => {
                                    o(a)
                                }
                                ).catch(a => {
                                    s(a)
                                }
                                )
                            });
                            return function(o, s) {
                                return i.apply(this, arguments)
                            }
                        }())
                    })()
                }
            }
            return e.\u0275fac = function() {
                let t;
                return function(r) {
                    return (t || (t = $e(e)))(r || e)
                }
            }(),
            e.\u0275prov = I({
                token: e,
                factory: e.\u0275fac,
                providedIn: "root"
            }),
            e
        }
        )()
          , BL = ( () => {
            class e {
                constructor(n, r, i) {
                    this.router = n,
                    this.routerQuery = r,
                    this._appService = i,
                    this.showErrorMessage = !1,
                    this.errorMessage = ""
                }
                ngOnInit() {
                    this.loadInitialApi(),
                    this.getVisitorID()
                }
                getVisitorID() {
                    kL.load().then(n => n.get()).then(n => {
                        this.routerQuery.queryParamMap.subscribe(r => {
                            r.get("sid") && r.get("vid") ? (this.urlParams = Object.assign(Object.assign({}, r.keys), r),
                            this.urlParams = r + "&x-fpid=" + n.visitorId,
                            this.router.navigate(["screener"], {
                                queryParams: {
                                    "x-fpid": n.visitorId
                                },
                                queryParamsHandling: "merge"
                            })) : (this.showErrorMessage = !0,
                            this.errorMessage = "Invalid Request")
                        }
                        )
                    }
                    )
                }
                loadInitialApi() {
                    this._appService.loadHearBeat().then( () => {}
                    ).catch(n => {
                        console.log(n)
                    }
                    )
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(qe),_(En),_(du))
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["app-landing-component"]],
                decls: 1,
                vars: 1,
                template: function(n, r) {
                    1 & n && _e(0),
                    2 & n && yo("", r.errorMessage, "\n")
                },
                encapsulation: 2
            }),
            e
        }
        )();
        class Kw {
            constructor() {
                this.entryUrl = "",
                this.fingerPrintId = "",
                this.respondentProfile = []
            }
        }
        class Zf {
            constructor() {
                this.surveyRespondentId = -1,
                this.surveyId = -1,
                this.userId = -1,
                this.supplierId = -1,
                this.supplierRespondentId = "",
                this.ipAddress = "",
                this.respondentStatus = -1,
                this.revenue = -1,
                this.cost = -1,
                this.supplierUserId = "",
                this.isRouter = !1,
                this.sessionId = ""
            }
        }
        class HL {
            constructor() {
                this.qualificationId = -1,
                this.qualificationTypeId = -1,
                this.answerId = -1,
                this.respondentAnswer = ""
            }
        }
        const Yf = JSON.parse('[{"languageids":[2,3,7,12,13,17,34,35,37,38,42,51,54,56,59,60,62,65,66,69,75,78,79,81,83],"patterns":["^\\\\d{5}$"],"minlength":5,"maxlength":5,"message":"Please enter valid postal/zipcode in this format: 11111"},{"languageids":[5,9],"patterns":["(^[A-CEGHJ-NPR-TVXY][0-9][A-Z]$)|(^[A-CEGHJ-NPR-TVXY][0-9][A-Z][0-9][A-Z][0-9]$)"],"minlength":3,"maxlength":6,"message":"Please enter valid postal code in this format: A1A1A1 or A1A"},{"languageids":[6,15,25,26,27,39,53,61,64,73,74,76,77,80,82],"patterns":["^\\\\d{6}$"],"minlength":6,"maxlength":6,"message":"Please enter valid pin/postal code in this format: 111111"},{"languageids":[4,18,19,21,22,23,28,29,32,45,55,70,71,72],"patterns":["^\\\\d{4}$"],"minlength":4,"maxlength":4,"message":"Please enter valid postcode in this format: 1111"},{"languageids":[16],"patterns":["(^\\\\d{4}[A-Z]{2}$)|(^\\\\d{4}[ ][A-Z]{2}$)"],"minlength":6,"maxlength":7,"message":"Please enter valid postcode in this format: 1111AA or 1111 AA"},{"languageids":[8,63],"patterns":["(^\\\\d{5}-\\\\d{3}$)|(^\\\\d{5}$)"],"minlength":5,"maxlength":9,"message":"Please enter valid postal code in this format: 11111-111 or 11111"},{"languageids":[24],"patterns":["(^\\\\d{4}-\\\\d{3}$)|(^\\\\d{4}$)"],"minlength":4,"maxlength":8,"message":"Please enter valid postal code in this format: 1111-111 or 1111"},{"languageids":[14,49],"patterns":["(^[A-Z]\\\\d{4}$)|(^[A-Z]\\\\d{4}[A-Z]{3}$)"],"minlength":5,"maxlength":8,"message":"Please enter valid postal code in this format: A1111"},{"languageids":[10],"patterns":["(^\\\\d{2}-\\\\d{3}$)|(^\\\\d{5}$)"],"minlength":5,"maxlength":6,"message":"Please enter valid postal code in this format: 11-111"},{"languageids":[30,33],"patterns":["(^\\\\d{3}-\\\\d{4}$)|(^\\\\d{7}$)"],"minlength":7,"maxlength":8,"message":"Please enter valid postal code in this format: 111-1111 or 1111111"},{"languageids":[40,52],"patterns":["(^\\\\d{5}-\\\\d{4}$)|(^\\\\d{5}$)"],"minlength":5,"maxlength":10,"message":"Please enter valid postal code in this format: 11111-1111 or 11111"},{"languageids":[41],"patterns":["(^\\\\d{7}$)|(^\\\\d{5}$)"],"minlength":5,"maxlength":7,"message":"Please enter valid postal code in this format: 11111 or 1111111"},{"languageids":[44],"patterns":["(^\\\\d{3}-\\\\d{3}$)|(^\\\\d{5}$)"],"minlength":5,"maxlength":7,"message":"Please enter valid postal code in this format: 11111 or 111-111"},{"languageids":[50],"patterns":["(^\\\\d{5}$)|(^\\\\d{3}$)"],"minlength":3,"maxlength":5,"message":"Please enter valid postal code in this format: 11111 or 111"},{"languageids":[31,36,67,68],"patterns":["(^\\\\d{3}[ ]\\\\d{2}$)|(^\\\\d{5}$)"],"minlength":5,"maxlength":6,"message":"Please enter valid postal code in this format: 111 11 or 11111"},{"languageids":[84],"patterns":["(^\\\\d{2}[ ]\\\\d{3}$)|(^\\\\d{5}$)"],"minlength":5,"maxlength":6,"message":"Please enter valid postal code in this format: 11 111 or 11111"},{"languageids":[1,57,58],"patterns":["(^[G][I][R]{0,1}[A][A]|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW])[0-9][ABD-HJLNP-UW-Z]{2}$)|(^[G][I][R]{0,1}[A][A]|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW])$)"],"minlength":2,"maxlength":7,"message":"Please enter valid postal code in this format: AA1 or A11"}]');
        class UL {
            constructor() {
                this.required = ir.required,
                this.contact_number = [ir.pattern("^((\\+91-?)|0)?[0-9]{10}$"), ir.maxLength(10), ir.required],
                this.email = [ir.pattern("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$"), ir.required]
            }
        }
        let $L = ( () => {
            class e {
                constructor() {
                    this.form_validators = new UL,
                    this.baseService = Oi.getInjector().get(zf),
                    this.logger = Oi.getInjector().get(Wf)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["ng-component"]],
                decls: 0,
                vars: 0,
                template: function(n, r) {},
                encapsulation: 2
            }),
            e
        }
        )();
        class GL {
            constructor() {
                this.q_id = "",
                this.text = "",
                this.s_text_length = "",
                this.sy_nr = ""
            }
        }
        function qL(e, t) {
            1 & e && (P(0, "div", 4),
            Gt(1, "img", 5)(2, "br"),
            P(3, "p"),
            _e(4, "Loading Screener............"),
            F()())
        }
        function WL(e, t) {
            if (1 & e && (P(0, "p", 6),
            _e(1),
            F()),
            2 & e) {
                const n = pe();
                B(1),
                yn(n.errorMessage)
            }
        }
        function zL(e, t) {
            if (1 & e && (P(0, "div", 4)(1, "p"),
            _e(2),
            F()()),
            2 & e) {
                const n = pe();
                B(2),
                yn(n.screenerStatusMessage)
            }
        }
        function ZL(e, t) {
            if (1 & e && (P(0, "h4", 11),
            _e(1),
            F()),
            2 & e) {
                const n = pe(2);
                B(1),
                yn(n.questionForScreener[0].question)
            }
        }
        function YL(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 14)(1, "label", 15)(2, "input", 16),
                ie("change", function() {
                    an(n);
                    const i = pe().$implicit;
                    return un(i.checked = !i.checked)
                }),
                F(),
                P(3, "small", 17),
                _e(4),
                F()()()
            }
            if (2 & e) {
                const n = pe().$implicit;
                B(2),
                Er("value", n.answerRepoId),
                z("checked", n.checked),
                B(2),
                yn(n.answer)
            }
        }
        function JL(e, t) {
            if (1 & e && (P(0, "div"),
            ue(1, YL, 5, 3, "div", 13),
            F()),
            2 & e) {
                const n = t.$implicit;
                B(1),
                z("ngIf", 2 == n.questionTypeId)
            }
        }
        function QL(e, t) {
            if (1 & e && (P(0, "div", 12),
            ue(1, JL, 2, 1, "div", 9),
            F()),
            2 & e) {
                const n = pe(2);
                B(1),
                z("ngForOf", n.questionForScreener)
            }
        }
        function XL(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 14)(1, "label", 19)(2, "input", 20),
                ie("change", function() {
                    return an(n),
                    un(pe(3).isSubmitAllowed = !0)
                }),
                F(),
                _e(3),
                F()()
            }
            if (2 & e) {
                const n = pe().$implicit;
                B(2),
                Er("value", n.answerRepoId),
                z("checked", n.checked),
                B(1),
                yo(" ", n.answer, " ")
            }
        }
        function KL(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 21)(1, "input", 22),
                ie("input", function(i) {
                    return an(n),
                    un(pe(3).validInputZ(i))
                }),
                F()()
            }
            if (2 & e) {
                const n = pe(3);
                B(1),
                Er("maxlength", n.zipPatternObjects[0].maxlength),
                Er("minlength", n.zipPatternObjects[0].minlength),
                Er("pattern", n.zipPatternObjects[0].patterns[0])
            }
        }
        function eV(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 21)(1, "input", 23),
                ie("input", function(i) {
                    return an(n),
                    un(pe(3).validInput(i, "numberCheck"))
                }),
                F()()
            }
        }
        function tV(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 14)(1, "input", 24),
                ie("input", function(i) {
                    return an(n),
                    un(pe(3).validInput(i, ""))
                }),
                F()()
            }
        }
        function nV(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 14)(1, "input", 25),
                ie("input", function(i) {
                    return an(n),
                    un(pe(3).validEmailInput(i))
                }),
                F()()
            }
        }
        function rV(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 21)(1, "input", 26),
                ie("input", function(i) {
                    return an(n),
                    un(pe(3).validInput(i, ""))
                }),
                F()()
            }
        }
        function iV(e, t) {
            if (1 & e && (P(0, "div"),
            ue(1, XL, 4, 3, "div", 13),
            ue(2, KL, 2, 3, "div", 18),
            ue(3, eV, 2, 0, "div", 18),
            ue(4, tV, 2, 0, "div", 13),
            ue(5, nV, 2, 0, "div", 13),
            ue(6, rV, 2, 0, "div", 18),
            F()),
            2 & e) {
                const n = t.$implicit
                  , r = pe(2);
                B(1),
                z("ngIf", 1 == n.questionTypeId),
                B(1),
                z("ngIf", 3 == n.questionTypeId),
                B(1),
                z("ngIf", 4 == n.questionTypeId),
                B(1),
                z("ngIf", 5 == n.questionTypeId),
                B(1),
                z("ngIf", 7 == n.questionTypeId),
                B(1),
                z("ngIf", 8 == n.questionTypeId && !r.isShowRedirection)
            }
        }
        function oV(e, t) {
            if (1 & e && (P(0, "p", 6),
            _e(1),
            F()),
            2 & e) {
                const n = pe(2);
                B(1),
                yn(n.zipPatternObjects[0].message)
            }
        }
        function sV(e, t) {
            if (1 & e && (P(0, "p", 6),
            _e(1),
            F()),
            2 & e) {
                const n = pe(2);
                B(1),
                yn(n.emailErrorMessage)
            }
        }
        function aV(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 27)(1, "button", 28),
                ie("click", function() {
                    an(n);
                    const i = pe(2);
                    return i.isSubmitAllowed = !0,
                    un(i.submitScreenerAnswer(i.sessionId))
                }),
                _e(2, "Next"),
                F()()
            }
            if (2 & e) {
                const n = pe(2);
                B(1),
                z("disabled", !n.isSubmitAllowed)
            }
        }
        function uV(e, t) {
            1 & e && (P(0, "span"),
            _e(1, "Loading..."),
            F())
        }
        function lV(e, t) {
            1 & e && (P(0, "span"),
            _e(1, "Submit"),
            F())
        }
        function cV(e, t) {
            if (1 & e) {
                const n = gn();
                P(0, "div", 27)(1, "button", 29),
                ie("click", function() {
                    an(n);
                    const i = pe(2);
                    return i.isSubmitAllowed = !0,
                    un(i.onRDReviewClick())
                }),
                ue(2, uV, 2, 0, "span", 3),
                ue(3, lV, 2, 0, "span", 3),
                F()()
            }
            if (2 & e) {
                const n = pe(2);
                B(1),
                z("disabled", !n.isSubmitAllowed),
                B(1),
                z("ngIf", n.isSubmitRDQuestion),
                B(1),
                z("ngIf", !n.isSubmitRDQuestion)
            }
        }
        function dV(e, t) {
            if (1 & e && (P(0, "div"),
            ue(1, ZL, 2, 1, "h4", 7),
            ue(2, QL, 2, 1, "div", 8),
            P(3, "div"),
            ue(4, iV, 7, 6, "div", 9),
            F(),
            ue(5, oV, 2, 1, "p", 1),
            ue(6, sV, 2, 1, "p", 1),
            ue(7, aV, 3, 1, "div", 10),
            ue(8, cV, 4, 3, "div", 10),
            Gt(9, "div"),
            F()),
            2 & e) {
                const n = pe();
                B(1),
                z("ngIf", !n.isShowRedirection),
                B(1),
                z("ngIf", 2 == n.questionForScreener[0].questionTypeId),
                B(1),
                uv(n.className),
                B(1),
                z("ngForOf", n.questionForScreener),
                B(1),
                z("ngIf", n.showZipErrorMessage),
                B(1),
                z("ngIf", n.showEmailErrorMessage),
                B(1),
                z("ngIf", n.isProceedNextButton),
                B(1),
                z("ngIf", n.isProcessRDReview && !n.isProceedNextButton && !n.isShowRedirection)
            }
        }
        let fV = ( () => {
            class e extends $L {
                constructor(n, r, i, o) {
                    super(),
                    this.router = n,
                    this.routerQuery = r,
                    this._appService = i,
                    this.formBuilder = o,
                    this.isResponseLoad = !1,
                    this.surveyStatus = null,
                    this.showErrorMessage = !1,
                    this.showZipErrorMessage = !1,
                    this.errorMessage = "",
                    this.screenerStatusMessage = "",
                    this.questionForScreener = [],
                    this.ScreenerForm = Ii,
                    this.sessionId = "",
                    this.answerRepoId = -1,
                    this.isSubmitAllowed = !1,
                    this.zipPatternObjects = [],
                    this.languageId = -1,
                    this.surveyId = -1,
                    this.surveyResponsdentId = -1,
                    this.isProcessRDReview = !1,
                    this.isProceedNextButton = !0,
                    this.isSubmitRDQuestion = !1,
                    this.isShowRedirection = !0,
                    this.rdReviewURL = "",
                    this.isProcessRDPredupe = !1,
                    this.rdPredupeURL = "",
                    this.emailErrorMessage = "please enter valid email Id",
                    this.showEmailErrorMessage = !1,
                    this.className = "questionScreenerStyle",
                    this.redirectionURL = ""
                }
                ngOnInit() {
                    this.isResponseLoad = !1,
                    this.isSubmitRDQuestion = !1;
                    let n = window.location.href.split("?");
                    if (n.length > 1) {
                        this.urlParams = "?" + n[1];
                        const r = sessionStorage.getItem("x-sess");
                        null != r && r.length > 4 && (this.urlParams = this.urlParams + "&x-sess=" + r);
                        let i = "";
                        this.routerQuery.queryParamMap.subscribe(o => {
                            if (o.get("sid") && o.get("vid") && o.get("xvar")) {
                                const s = this.urlParams.split("xvar");
                                this.urlParams = s[0] + s[1],
                                this.urlParams = Object.assign(Object.assign({}, o.keys), o),
                                i = "?vid=" + this.urlParams.params.vid + "&sid=" + this.urlParams.params.sid + "&x-sess=" + this.urlParams.params.xsess + "&" + this.urlParams.params.xvar,
                                this.urlParams = i
                            }
                            this._appService.loadScreener(this.urlParams).then(s => {
                                var a;
                                this.isResponseLoad = !0,
                                s.success ? !s.redirectUrl || s.isRDFraudRequest || s.isRDReviewRequest ? (sessionStorage.setItem("x-sess", s.sessionId),
                                this.questionForScreener = s.surveyCriteria,
                                this.sessionId = s.sessionId,
                                this.languageId = s.languageId,
                                this.surveyId = s.surveyId,
                                this.surveyResponsdentId = s.surveyRespondentId,
                                this.isProcessRDReview = s.isRDReviewRequest,
                                (null === (a = this.questionForScreener) || void 0 === a ? void 0 : a.length) > 0 && (this.isProceedNextButton = 8 != this.questionForScreener[0].questionTypeId,
                                this.className = 3 == this.questionForScreener[0].questionTypeId || 4 == this.questionForScreener[0].questionTypeId || 8 == this.questionForScreener[0].questionTypeId ? "withOutColumnCount" : "questionScreenerStyle",
                                this.isProceedNextButton && (this.isShowRedirection = !1),
                                2 == this.questionForScreener[0].questionTypeId ? this.isSubmitAllowed = !0 : 3 == this.questionForScreener[0].questionTypeId ? this.zipPatternObjects = Yf.filter(u => u.languageids.find(l => l == s.languageId)) : (this.zipPatternObjects = [],
                                this.showZipErrorMessage = !1)),
                                s.isRDFraudRequest ? this.onResearchDefenderSearchReview(s, "load") : s.isRDReviewRequest && (this.isShowRedirection = !1,
                                this.isSubmitRDQuestion = !1,
                                this.rdReviewURL = s.rdReviewURL)) : (sessionStorage.clear(),
                                window.location.href = s.redirectUrl) : (this.showErrorMessage = !0,
                                this.errorMessage = void 0 !== s.redirectUrl && s.redirectUrl ? "Wrong entry link" : "103" == s.appErrors[0].ErrorCode ? "Only for one time, you can use this survey" : "102" == s.appErrors[0].ErrorCode ? "Wrong entry link" : "Something went wrong. Please try later",
                                sessionStorage.clear())
                            }
                            ).catch(s => {
                                console.log(s),
                                this.errorMessage = "Something went wrong. Please try later",
                                this.showErrorMessage = !0,
                                sessionStorage.clear()
                            }
                            )
                        }
                        )
                    } else
                        this.errorMessage = "Wrong entry link",
                        this.showErrorMessage = !0,
                        sessionStorage.clear();
                    this.ScreenerForm = this.formBuilder.group({
                        selectedAnswerOption: new Nt(""),
                        txtZip: new Nt("",[ir.required, ir.pattern("[a-zA-Z]*")]),
                        txtAge: new Nt(""),
                        txtRDAnswer: new Nt(""),
                        txtEmailId: new Nt,
                        txtOpenAnswer: new Nt("")
                    }),
                    history.pushState(null, "", window.location.href),
                    window.onpopstate = function() {
                        history.go(1)
                    }
                }
                submitScreenerAnswer(n) {
                    let r = ""
                      , i = new Kw;
                    if (i.respondent = new Zf,
                    i.respondent.sessionId = n,
                    i.respondentProfile = new Array,
                    this.isSubmitAllowed = !1,
                    2 == this.questionForScreener[0].questionTypeId) {
                        this.isSubmitAllowed = !0;
                        let o = this.questionForScreener.filter(s => s.checked).map(s => s);
                        if (o && o.length > 0) {
                            this.showErrorMessage = !1;
                            for (let s of o)
                                i.respondentProfile.push(this.createRespondentProfile(s.questionRepoId, s.questionTypeId, s.answerRepoId, s.answerRepoId.toString()))
                        } else
                            this.errorMessage = "Please select at least one answer",
                            this.showErrorMessage = !0
                    } else
                        2 != this.questionForScreener[0].questionTypeId && 8 != this.questionForScreener[0].questionTypeId && (1 == this.questionForScreener[0].questionTypeId ? (this.answerRepoId = Number(this.ScreenerForm.value.selectedAnswerOption),
                        r = this.ScreenerForm.value.selectedAnswerOption) : 4 == this.questionForScreener[0].questionTypeId ? (this.answerRepoId = Number(this.questionForScreener[0].answerRepoId),
                        r = this.ScreenerForm.value.txtAge.toString()) : 3 == this.questionForScreener[0].questionTypeId ? (this.answerRepoId = Number(this.questionForScreener[0].answerRepoId),
                        r = this.ScreenerForm.value.txtZip) : 5 == this.questionForScreener[0].questionTypeId ? (this.answerRepoId = Number(this.questionForScreener[0].answerRepoId),
                        r = this.ScreenerForm.value.txtOpenAnswer.toString()) : 7 == this.questionForScreener[0].questionTypeId && (this.answerRepoId = Number(this.questionForScreener[0].answerRepoId),
                        r = this.ScreenerForm.value.txtEmailId),
                        i.respondentProfile.push(this.createRespondentProfile(this.questionForScreener[0].questionRepoId, this.questionForScreener[0].questionTypeId, this.answerRepoId, r)));
                    0 == this.showErrorMessage && 0 == this.showZipErrorMessage && this._appService.submitRespondentAnswer(i).then(o => {
                        this.isProcessRDReview = o.isRDReviewRequest,
                        this.rdReviewURL = o.rdReviewURL,
                        this.isProcessRDPredupe = o.isRDPredupeRequest,
                        this.rdPredupeURL = o.rdPredupeURL,
                        this.redirectionURL = null != o.redirectUrl && "" != o.redirectUrl ? o.redirectUrl : "",
                        null != this.sessionId && "" != this.sessionId && (this.sessionId = o.sessionId,
                        sessionStorage.setItem("x-sess", o.sessionId)),
                        this.surveyResponsdentId = o.surveyRespondentId,
                        this.surveyId = o.surveyId,
                        this.questionForScreener = o.surveyCriteria,
                        this.languageId = o.languageId,
                        this.zipPatternObjects = Yf.filter(s => s.languageids.find(a => a == o.languageId)),
                        null != this.questionForScreener && (this.className = 3 == this.questionForScreener[0].questionTypeId || 4 == this.questionForScreener[0].questionTypeId || 8 == this.questionForScreener[0].questionTypeId ? "withOutColumnCount" : "questionScreenerStyle",
                        2 == this.questionForScreener[0].questionTypeId && (this.isSubmitAllowed = !0),
                        1 == this.questionForScreener[0].questionTypeId && (this.isSubmitAllowed = !1),
                        this.isProceedNextButton = 8 != this.questionForScreener[0].questionTypeId,
                        this.isProceedNextButton || (this.isSubmitRDQuestion = !1),
                        this.isResponseLoad = !0),
                        o.isRDFraudRequest ? (this.isResponseLoad = !1,
                        this.questionForScreener = [],
                        this.onResearchDefenderSearchReview(o, "submit")) : o.isRDFraudRequest || o.isRDReviewRequest || !o.isRDPredupeRequest ? null != o.redirectUrl && "" != o.redirectUrl && (sessionStorage.clear(),
                        o.isRDReviewRequest || (this.isResponseLoad = !1,
                        window.location.href = o.redirectUrl)) : (this.isResponseLoad = !1,
                        this.questionForScreener = [],
                        this.onResearchDefenderPredupe(o)),
                        this.ScreenerForm.reset()
                    }
                    ).catch(o => {
                        sessionStorage.clear(),
                        console.log(o),
                        this.errorMessage = "Something went wrong. Please try later",
                        this.showErrorMessage = !0,
                        this.showZipErrorMessage = !1
                    }
                    )
                }
                createRespondentProfile(n, r, i, o) {
                    let s = new HL;
                    return s.qualificationId = n,
                    s.qualificationTypeId = r,
                    s.answerId = i,
                    s.respondentAnswer = o,
                    s
                }
                validInput(n, r) {
                    "numberCheck" == r && (n.target.value = n.target.value.replace(/[^0-9.]/g, "").replace(/(\..*)\./g, "$1")),
                    this.isSubmitAllowed = "" != n.target.value
                }
                validInputZ(n) {
                    this.zipPatternObjects = Yf.filter(i => i.languageids.find(o => o == this.languageId));
                    var r = new RegExp(this.zipPatternObjects[0].patterns[0]);
                    this.showZipErrorMessage = !r.test(n.target.value.toUpperCase()),
                    this.isSubmitAllowed = !this.showZipErrorMessage
                }
                onRDReviewClick() {
                    var n = this.ScreenerForm.value.txtRDAnswer
                      , r = this.questionForScreener[0];
                    let i = new GL;
                    i.q_id = r.questionRepoId.toString(),
                    i.sy_nr = this.surveyId.toString(),
                    i.s_text_length = n.length,
                    i.text = n,
                    this.isSubmitAllowed = !1,
                    this.isSubmitRDQuestion = !0,
                    this._appService.researchDefenderReviewResponse(i, this.rdReviewURL).then(o => {
                        o.surveyRespondentId = this.surveyResponsdentId,
                        o.sessionId = this.sessionId,
                        this._appService.insertResearchDefenderReviewLog(o).then(s => {
                            sessionStorage.clear(),
                            this.questionForScreener = s.surveyCriteria,
                            this.isProcessRDPredupe = s.isRDPredupeRequest,
                            null != this.questionForScreener && this.questionForScreener.length > 0 && (this.isProceedNextButton = 8 != this.questionForScreener[0].questionTypeId),
                            this.isProcessRDPredupe ? this.isProcessRDPredupe ? (this.isResponseLoad = !1,
                            this.questionForScreener = [],
                            s.rdPredupeURL = this.rdPredupeURL,
                            s.sessionId = this.sessionId,
                            s.surveyId = this.surveyId,
                            s.surveyRespondentId = this.surveyResponsdentId,
                            this.onResearchDefenderPredupe(s)) : !this.isProceedNextButton && null != s.surveyCriteria && s.surveyCriteria.length > 0 ? (this.isSubmitRDQuestion = !1,
                            this.ScreenerForm.reset()) : this.isProceedNextButton && (this.isSubmitAllowed = !0,
                            this.ScreenerForm.reset()) : null != s.redirectUrl && "" != s.redirectUrl && (window.location.href = s.redirectUrl)
                        }
                        ).catch(s => {
                            console.log(s),
                            sessionStorage.clear(),
                            window.location.href = this.redirectionURL
                        }
                        )
                    }
                    ).catch(o => {
                        console.log(o),
                        sessionStorage.clear(),
                        window.location.href = this.redirectionURL
                    }
                    )
                }
                onResearchDefenderSearchReview(n, r) {
                    this._appService.researchDefenderSearchResponse(n.rdSearchURL).then(i => {
                        var o;
                        null != i && null != i.Surveys ? (null === (o = null == i ? void 0 : i.Surveys) || void 0 === o ? void 0 : o.length) > 0 ? (i.SessionId = this.sessionId,
                        i.SurveyRespondentId = n.surveyRespondentId,
                        this._appService.insertResearchDefenderSearchLog(i).then(s => {
                            var a;
                            sessionStorage.clear(),
                            null != s.surveyCriteria && s.surveyCriteria.length > 0 && (this.isProceedNextButton = 8 != s.surveyCriteria[0].questionTypeId,
                            this.className = 3 == s.surveyCriteria[0].questionTypeId || 4 == s.surveyCriteria[0].questionTypeId || 8 == s.surveyCriteria[0].questionTypeId ? "withOutColumnCount" : "questionScreenerStyle"),
                            n.isRDReviewRequest ? s.isRedirectUrl ? (this.isShowRedirection = !0,
                            window.location.href = s.redirectUrl) : (this.isShowRedirection = !1,
                            "submit" == r && (null == s.surveyCriteria || 0 == s.surveyCriteria.length ? this.questionForScreener = n.surveyCriteria : (this.questionForScreener = s.surveyCriteria,
                            this.isSubmitRDQuestion = !1,
                            this.isProceedNextButton = 8 != this.questionForScreener[0].questionTypeId,
                            this.className = 3 == this.questionForScreener[0].questionTypeId || 4 == this.questionForScreener[0].questionTypeId || 8 == this.questionForScreener[0].questionTypeId ? "withOutColumnCount" : "questionScreenerStyle",
                            s.isRDReviewRequest && (this.isProcessRDReview = !0),
                            this.ScreenerForm.reset()),
                            this.isResponseLoad = !0)) : n.isRDPredupeRequest ? s.isRDPredupeRequest ? (this.isResponseLoad = !1,
                            this.onResearchDefenderPredupe(n)) : this.isProceedNextButton && (null === (a = s.surveyCriteria) || void 0 === a ? void 0 : a.length) > 0 ? (this.questionForScreener = s.surveyCriteria,
                            this.isSubmitAllowed = !0,
                            this.isShowRedirection = !1,
                            this.isResponseLoad = !0,
                            this.ScreenerForm.reset()) : window.location.href = null != s.redirectUrl ? s.redirectUrl : n.redirectUrl : null != s.redirectUrl && "" != s.redirectUrl && (window.location.href = s.redirectUrl)
                        }
                        ).catch(s => {
                            console.log(s),
                            sessionStorage.clear(),
                            window.location.href = n.redirectUrl
                        }
                        )) : "submit" == r && (sessionStorage.clear(),
                        window.location.href = n.redirectUrl) : window.location.href = n.redirectUrl
                    }
                    ).catch(i => {
                        console.log(i),
                        sessionStorage.clear(),
                        window.location.href = n.redirectUrl
                    }
                    )
                }
                onResearchDefenderPredupe(n) {
                    this._appService.researchDefenderSearchResponse(n.rdPredupeURL).then(r => {
                        null != r && null != r.Surveys && (r.SessionId = this.sessionId,
                        r.SurveyRespondentId = n.surveyRespondentId,
                        this._appService.researchDefenderPredupe(r).then(i => {
                            null != i.redirectUrl && "" != i.redirectUrl && (window.location.href = i.redirectUrl),
                            sessionStorage.clear()
                        }
                        ))
                    }
                    )
                }
                validEmailInput(n) {
                    this.isSubmitAllowed = "" != n.target.value,
                    this.isSubmitAllowed && /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(n.target.value) ? (this.showEmailErrorMessage = !1,
                    this.isSubmitAllowed = !0) : (this.showEmailErrorMessage = !0,
                    this.isSubmitAllowed = !1)
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(qe),_(En),_(du),_(fC))
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["app-screener-component"]],
                features: [ee],
                decls: 5,
                vars: 5,
                consts: [["style", "margin:0 auto;", 4, "ngIf"], ["style", "color:red", 4, "ngIf"], [3, "formGroup"], [4, "ngIf"], [2, "margin", "0 auto"], ["src", "/assets/preloader.gif", "alt", "", "width", "60", "height", "60"], [2, "color", "red"], ["style", "margin-bottom:24px", 4, "ngIf"], ["style", "column-count: 2; column-gap:3px; font-size: 14px;", 4, "ngIf"], [4, "ngFor", "ngForOf"], ["class", "btnGroup d-flex", 4, "ngIf"], [2, "margin-bottom", "24px"], [2, "column-count", "2", "column-gap", "3px", "font-size", "14px"], ["class", "t-option d-flex w-100", 4, "ngIf"], [1, "t-option", "d-flex", "w-100"], [1, "label"], ["type", "checkbox", "name", "i.answerRepoId", "id", "", 3, "value", "checked", "change"], [2, "margin-left", "7px", "margin-bottom", "5px", "font-size", "12px", "font-weight", "500"], ["class", "t-option mt-3 w-100", 4, "ngIf"], [1, "label", 2, "font-size", "14px", "margin-bottom", "5px", "font-weight", "500"], ["type", "radio", "id", "", "formControlName", "selectedAnswerOption", 3, "value", "checked", "change"], [1, "t-option", "mt-3", "w-100"], ["type", "text", "id", "openZipAnswer", "placeholder", "Type your response here .", "formControlName", "txtZip", 1, "form-control", 2, "width", "250px", 3, "maxlength", "minlength", "pattern", "input"], ["type", "text", "maxlength", "2", "minlength", "2", "id", "openAgeAnswer", "placeholder", "Type your response here.", "formControlName", "txtAge", 1, "form-control", 2, "width", "250px", 3, "input"], ["type", "text", "maxlength", "100", "id", "openAnswer", "placeholder", "Type your response here.", "formControlName", "txtOpenAnswer", 1, "form-control", 2, "width", "250px", 3, "input"], ["type", "text", "maxlength", "100", "id", "openEmailAnswer", "placeholder", "Type your Email ID.", "formControlName", "txtEmailId", 1, "form-control", 2, "width", "250px", 3, "input"], ["type", "text", "maxlength", "300", "minlength", "10", "id", "openRDAnswer", "placeholder", "Type your response here .", "formControlName", "txtRDAnswer", 1, "form-control", 2, "width", "250px", 3, "input"], [1, "btnGroup", "d-flex"], ["type", "submit", 1, "btn", "btn-secondary", 3, "disabled", "click"], ["type", "button", 1, "btn", "btn-secondary", 3, "disabled", "click"]],
                template: function(n, r) {
                    1 & n && (ue(0, qL, 5, 0, "div", 0),
                    ue(1, WL, 2, 1, "p", 1),
                    ue(2, zL, 3, 1, "div", 0),
                    P(3, "form", 2),
                    ue(4, dV, 10, 10, "div", 3),
                    F()),
                    2 & n && (z("ngIf", !r.isResponseLoad || r.isShowRedirection),
                    B(1),
                    z("ngIf", r.showErrorMessage),
                    B(1),
                    z("ngIf", !r.showErrorMessage && "" != r.screenerStatusMessage),
                    B(1),
                    z("formGroup", r.ScreenerForm),
                    B(1),
                    z("ngIf", null != r.questionForScreener && r.questionForScreener.length > 0))
                },
                dependencies: [O_, xa, qd, Lo, qa, Pd, Od, Xd, Kd, ef, Uo, Wa],
                encapsulation: 2
            }),
            e
        }
        )();
        function hV(e, t) {
            1 & e && (P(0, "div", 6),
            Gt(1, "img", 7)(2, "br"),
            F())
        }
        function pV(e, t) {
            if (1 & e && (P(0, "div", 6)(1, "p"),
            _e(2),
            F()()),
            2 & e) {
                const n = pe();
                B(2),
                yn(n.errorMessage)
            }
        }
        function gV(e, t) {
            if (1 & e && (P(0, "div", 6)(1, "p"),
            _e(2),
            F()()),
            2 & e) {
                const n = pe();
                B(2),
                yn(n.screenerStatusMessage)
            }
        }
        let mV = ( () => {
            class e {
                constructor(n, r, i) {
                    this.routerQuery = n,
                    this._appService = r,
                    this.router = i,
                    this.showErrorMessage = !1,
                    this.errorMessage = "",
                    this.screenerStatusMessage = "",
                    this.isResponseLoad = !1
                }
                ngOnInit() {
                    let r, n = window.location.href.split("?");
                    n.length > 1 ? (r = "?" + n[1],
                    this._appService.surveyEnding(r).then(i => {
                        console.log(i),
                        this.isResponseLoad = !0,
                        i.success && void 0 !== i.redirectUrl && (i.redirectUrl || i.surveyUrl) ? i.surveyUrl ? this.router.navigate(["screener"], {
                            queryParams: i.surveyUrl
                        }) : (sessionStorage.clear(),
                        window.location.href = i.redirectUrl) : (this.showErrorMessage = !0,
                        this.errorMessage = i.success ? "Wrong redirect url" : 103 == i.appErrors[0].errorCode ? "Only for one time, you can use this survey" : 102 == i.appErrors[0].errorCode ? "Wrong redirect url" : "Something went wrong. Please try later",
                        sessionStorage.clear(),
                        window.location.href = i.redirectUrl)
                    }
                    ).catch(i => {
                        console.log(i),
                        this.errorMessage = "Something went wrong.Please try later",
                        this.showErrorMessage = !0
                    }
                    )) : (this.errorMessage = "Wrong entry link",
                    this.showErrorMessage = !0,
                    sessionStorage.clear())
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(En),_(du),_(qe))
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["app-ending-component"]],
                decls: 9,
                vars: 3,
                consts: [["style", "margin:0 auto;", 4, "ngIf"], ["id", "trwelcome", 2, "display", "none"], ["colspan", "3", "align", "center"], ["id", "Table2", "runat", "server", "width", "100%"], ["align", "center", "colspan", "3"], ["ID", "Lblmsg", 2, "font-family", "Arial", "font-size", "small"], [2, "margin", "0 auto"], ["src", "/assets/preloader.gif", "alt", "", "width", "60", "height", "60"]],
                template: function(n, r) {
                    1 & n && (ue(0, hV, 3, 0, "div", 0),
                    ue(1, pV, 3, 1, "div", 0),
                    ue(2, gV, 3, 1, "div", 0),
                    P(3, "tr", 1)(4, "td", 2)(5, "table", 3)(6, "tr")(7, "td", 4),
                    Gt(8, "label", 5),
                    F()()()()()),
                    2 & n && (z("ngIf", !r.isResponseLoad),
                    B(1),
                    z("ngIf", r.showErrorMessage),
                    B(1),
                    z("ngIf", !r.showErrorMessage && "" != r.screenerStatusMessage))
                },
                dependencies: [xa],
                encapsulation: 2
            }),
            e
        }
        )()
          , vV = ( () => {
            class e {
                constructor(n, r, i, o) {
                    this.router = n,
                    this.routerQuery = r,
                    this._appService = i,
                    this.formBuilder = o,
                    this.surveyId = -1,
                    this.supplierId = "",
                    this.respondentId = "",
                    this.isSubmitAllowed = !1,
                    this.RedirectForm = Ii
                }
                ngOnInit() {
                    this.RedirectForm = this.formBuilder.group({
                        selectedRedirectOption: new Nt("")
                    })
                }
                submitRedirectionType() {
                    let i, n = "", r = window.location.href.split("?");
                    if (r.length > 1) {
                        i = "?" + r[1];
                        const s = sessionStorage.getItem("respondentid");
                        n = null != s && s.length > 0 ? r[0] + i + "&respondentid=" + s : r[0] + i
                    }
                    this.surveyId = null != this.routerQuery.snapshot.queryParamMap.get("sid") ? this.routerQuery.snapshot.queryParamMap.get("sid") : 0,
                    this.supplierId = null != this.routerQuery.snapshot.queryParamMap.get("vid") ? this.routerQuery.snapshot.queryParamMap.get("vid") : 0,
                    this.respondentId = null != sessionStorage.getItem("respondentid") ? sessionStorage.getItem("respondentid") : "";
                    let o = new Kw;
                    o.respondent = new Zf,
                    o.respondent = this.createRedirectionRespondent(Number(this.RedirectForm.value.selectedRedirectOption), this.respondentId, "", this.surveyId, 0),
                    o.respondent.supplierId = this.supplierId,
                    o.entryUrl = n,
                    this._appService.submitRedirection(o).then(s => {
                        s.success && "" != s.redirectUrl && (window.location.href = s.redirectUrl)
                    }
                    )
                }
                createRedirectionRespondent(n, r, i, o, s) {
                    let a = new Zf;
                    return a.respondentStatus = n,
                    a.supplierRespondentId = r,
                    a.supplierUserId = i,
                    a.surveyId = o,
                    a.cost = s,
                    a
                }
            }
            return e.\u0275fac = function(n) {
                return new (n || e)(_(qe),_(En),_(du),_(fC))
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["app-test-redirect"]],
                decls: 23,
                vars: 2,
                consts: [["charset", "utf-8"], [3, "formGroup", "ngSubmit"], [1, "btnGroup", "d-flex"], ["for", "selectedRedirectOption", 1, "label", 2, "font-size", "14px", "margin-bottom", "5px", "font-weight", "500", "margin-right", "5px"], ["type", "radio", "name", "selectedRedirectOption", "formControlName", "selectedRedirectOption", "value", "1", 3, "change"], ["type", "radio", "name", "selectedRedirectOption", "formControlName", "selectedRedirectOption", "value", "2", 3, "change"], ["type", "radio", "name", "selectedRedirectOption", "formControlName", "selectedRedirectOption", "value", "3", 3, "change"], ["type", "radio", "name", "selectedRedirectOption", "formControlName", "selectedRedirectOption", "value", "9", 3, "change"], [1, "btn", "btn-secondary", 2, "margin-right", "5px", 3, "disabled", "click"]],
                template: function(n, r) {
                    1 & n && (P(0, "html")(1, "head"),
                    Gt(2, "meta", 0)(3, "title"),
                    F(),
                    P(4, "body")(5, "p"),
                    _e(6, "Test Redirect"),
                    F(),
                    P(7, "form", 1),
                    ie("ngSubmit", function() {
                        return r.submitRedirectionType()
                    }),
                    P(8, "div", 2)(9, "label", 3)(10, "input", 4),
                    ie("change", function() {
                        return r.isSubmitAllowed = !0
                    }),
                    F(),
                    _e(11, " Complete "),
                    F(),
                    P(12, "label", 3)(13, "input", 5),
                    ie("change", function() {
                        return r.isSubmitAllowed = !0
                    }),
                    F(),
                    _e(14, " Over Quota "),
                    F(),
                    P(15, "label", 3)(16, "input", 6),
                    ie("change", function() {
                        return r.isSubmitAllowed = !0
                    }),
                    F(),
                    _e(17, " Terminate "),
                    F(),
                    P(18, "label", 3)(19, "input", 7),
                    ie("change", function() {
                        return r.isSubmitAllowed = !0
                    }),
                    F(),
                    _e(20, " Security "),
                    F()(),
                    P(21, "button", 8),
                    ie("click", function() {
                        return r.isSubmitAllowed = !0
                    }),
                    _e(22, "Submit"),
                    F()()()()),
                    2 & n && (B(7),
                    z("formGroup", r.RedirectForm),
                    B(14),
                    z("disabled", !r.isSubmitAllowed))
                },
                dependencies: [qd, Lo, qa, Pd, Od, Uo, Wa],
                encapsulation: 2
            }),
            e
        }
        )()
          , yV = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275cmp = Lt({
                type: e,
                selectors: [["app-thanks"]],
                decls: 3,
                vars: 0,
                consts: [[1, "center-div", "text-center"]],
                template: function(n, r) {
                    1 & n && (P(0, "div", 0)(1, "h2"),
                    _e(2, "Thanks for attempting the survey"),
                    F()())
                },
                encapsulation: 2
            }),
            e
        }
        )()
          , _V = ( () => {
            class e {
            }
            return e.\u0275fac = function(n) {
                return new (n || e)
            }
            ,
            e.\u0275mod = St({
                type: e,
                bootstrap: [sk]
            }),
            e.\u0275inj = pt({
                imports: [dF.withServerTransition({
                    appId: "ng-cli-universal"
                }), VN, EN, cC, WO.forRoot([{
                    path: "",
                    redirectTo: "/landing",
                    pathMatch: "full"
                }, {
                    path: "landing",
                    component: BL
                }, {
                    path: "screener",
                    component: fV
                }, {
                    path: "ending",
                    component: mV
                }, {
                    path: "test-redirect",
                    component: vV
                }, {
                    path: "thanks",
                    component: yV
                }])]
            }),
            e
        }
        )();
        const CV = [{
            provide: "BASE_URL",
            useFactory: function DV() {
                return document.getElementsByTagName("base")[0].href
            },
            deps: []
        }];
        Xw.production && function Y1() {
            l_ = !1
        }(),
        cF(CV).bootstrapModule(_V).catch(e => console.log(e))
    }
}, ce => {
    ce(ce.s = 495)
}
]);
